>백엔드 개발 >PHP 튜토리얼 >PHP 새로운 자기와 새로운 정적

PHP 새로운 자기와 새로운 정적

WBOY
WBOY원래의
2016-07-29 08:57:01943검색

<span>class</span><span> A {
  </span><span>public</span><span>static</span><span>function</span><span> get_self() {
    </span><span>return</span><span>new</span><span> self();
  }
 
  </span><span>public</span><span>static</span><span>function</span><span> get_static() {
    </span><span>return</span><span>new</span><span>static</span><span>();
  }
}
 
</span><span>class</span> B <span>extends</span><span> A {}
 
</span><span>echo</span><span>get_class</span>(B::get_self()); <span>//</span><span> A</span><span>echo</span><span>get_class</span>(B::get_static()); <span>//</span><span> B</span><span>echo</span><span>get_class</span>(A::get_static()); <span>//</span><span> A</span>

self는 호출 컨텍스트가 아닌 구문 분석 컨텍스트를 나타냅니다. 이 예에서 self는 self를 호출하는 B가 아니라 get_self()를 정의하는 A로 확인됩니다.

지연된 정적 바인딩 개념은 php5.3에서 도입되었습니다. 이 기능의 가장 확실한 상징은 새로운 키워드 static입니다. static은 호출되는 클래스를 나타냅니다. 예제에서 B::get_static()은 A를 인스턴스화하는 대신 새로운 B를 생성합니다

위 내용은 PHP new self와 new static에 대한 내용을 포함하여 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

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