PHP 정적 지연된 정적 바인딩 사용 분석_php 기술

WBOY
풀어 주다: 2016-05-16 19:56:40
원래의
1026명이 탐색했습니다.

이 기사의 예에서는 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 프로그래밍에 종사하는 모든 사람에게 도움이 되기를 바랍니다.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿