PHP7 호출 범위가 php5와 다릅니까?

WBOY
풀어 주다: 2023-03-02 07:22:02
원래의
841명이 탐색했습니다.

오늘 __call()__callStatic() 공부하다가 Niao 형제님의 PHP Calling Scope에 관한 글을 읽었습니다

그런데 다음 코드가 PHP5.5와 PHP7에서 서로 다른 결과를 생성한다는 사실을 발견하셨나요?

<code><?php
 class Foo {
     public function bar() {
         var_dump($this); //PHP5.5中打印的是A对象,PHP7是未定义,也就是NULL
     }
 }
 class A {
     public function test() {
         Foo::bar();
     }
 }
 $a  = new A();
 $a->test();
?></code>
로그인 후 복사
로그인 후 복사

PHP7에서 이를 조정하는 방법에 대한 지침을 찾을 수 없습니다. 조언 감사합니다

답글 내용:

오늘 __call()__callStatic() 공부하다가 Niao 형제님의 PHP Calling Scope에 관한 글을 읽었습니다

그런데 다음 코드가 PHP5.5와 PHP7에서 서로 다른 결과를 생성한다는 사실을 발견하셨나요?

<code><?php
 class Foo {
     public function bar() {
         var_dump($this); //PHP5.5中打印的是A对象,PHP7是未定义,也就是NULL
     }
 }
 class A {
     public function test() {
         Foo::bar();
     }
 }
 $a  = new A();
 $a->test();
?></code>
로그인 후 복사
로그인 후 복사

PHP7에서 이를 조정하는 방법에 대한 지침을 찾을 수 없습니다. 조언 감사합니다

이 조정을 통해 이전 버전과 호환되지 않고 PHP 5.6에서 사용 중지로 표시된 PHP 7에서 찾을 수 있습니다

비정적 메서드를 정적으로 호출하는 경우 정적 호출 중에 $this가 정의되지 않았다는 메시지가 표시되고 오류가 보고됩니다.

http://php.net/manual/en/migr...

http://m.runoob.com/php/php-d...

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