이 기사의 예에서는 PHP 정적 지연 정적 바인딩의 사용법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 자세한 내용은 다음과 같습니다.
PHP5.3에서는 지연된 정적 바인딩 정적을 도입했습니다. 어떤 문제를 해결하려고 합니까? PHP 상속 모델의 오랜 문제는 상위 클래스에서 확장 클래스의 최종 상태를 참조하기 어렵다는 것입니다. 예를 살펴보겠습니다.
class A { public static function echoClass(){ echo __CLASS__; } public static function test(){ self::echoClass(); } } class B extends A { public static function echoClass() { echo __CLASS__; } } B::test(); //输出A
PHP5.3에 새로운 기능이 추가되었습니다. 지연된 정적 바인딩은 원래 정의 단계에서 수정된 표현식이나 변수가 다음과 같이 실행 단계에서 결정되도록 변경된다는 의미입니다. 자식이 부모 클래스의 정적 표현식을 상속하는 경우 해당 값을 변경할 수 없는 경우가 있습니다.
다음 예는 위에서 제기된 문제를 해결합니다.
class A { public static function echoClass(){ echo __CLASS__; } public static function test() { static::echoClass(); } } class B extends A { public static function echoClass(){ echo __CLASS__; } } B::test(); //输出B
8행의 static::echoClass()는 B가 테스트를 호출할 때까지 정적 지연 바인딩 메서드를 정의합니다. 원래는 다음과 같이 정의된 메서드입니다. 실행은 실행될 때만 실행됩니다.
이 글이 PHP 프로그래밍에 종사하는 모든 분들께 도움이 되기를 바랍니다.
PHP 정적 지연 정적 바인딩 사용 분석에 관한 더 많은 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!