PHP7 calling scope與php5的不一樣了?

WBOY
發布: 2023-03-02 07:22:02
原創
808 人瀏覽過

今天在研究__call()__callStatic()的時候讀到了鳥哥的文章 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()的時候讀到了鳥哥的文章 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 7 的非向下兼容的里面可以找到, 並且在 PHP 5.6 中已經被標記為 DEPRECATED

靜態呼叫一個非靜態方法, 會在靜態呼叫中被提示未定義 $this, 並會報錯。

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

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

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!