>  기사  >  백엔드 개발  >  PHP7 호출 범위가 php5와 다릅니까?

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

WBOY
WBOY원래의
2016-12-01 00:56:52800검색

오늘 __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...

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