>  기사  >  백엔드 개발  >  PHP 정적 지연된 정적 바인딩 사용 분석

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

高洛峰
高洛峰원래의
2016-12-26 16:32:011133검색

이 기사의 예에서는 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 중국어 웹사이트를 주목하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.