이 기사의 예에서는 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 운영 오피스 문서 기술 요약(워드, 엑셀, 액세스, ppt 포함)", " php 날짜 시간 사용법 요약", "php 객체 지향 프로그래밍 입문 튜토리얼", "php 문자열(문자열) 사용법 요약", "php mysql 데이터베이스 작업 입문 튜토리얼 " 및 " 일반적인 PHP 데이터베이스 작업 기술 요약 "
이 기사가 PHP 프로그래밍에 종사하는 모든 사람에게 도움이 되기를 바랍니다.