簡體   English   中英

通過父函數的靜態變量訪問防止后期靜態綁定

[英]Prevent late static binding with static variable access from parent function

給定以下類層次結構:

class ParentClass {
    private static $_test;

    public function returnTest() {
        return static::$_test;
    }
}
class ChildClass extends ParentClass {
    // intentionally left blank
}
$child = new ChildClass();
echo $child->returnTest();

生成的輸出是以下錯誤消息:
Fatal error: Cannot access property ChildClass::$_test
有沒有辦法防止后期靜態綁定的發生? 由於我正在調用一個不會被覆蓋的父類的函數,因此我覺得應該被允許做上面的事情。

您正在從實例化的類中調用靜態屬性。 只需使用類的名稱即可:

return static::$_test;

使用return self::$_test而不是return static::$_test

這樣可以確保您訪問定義了returnTest的類的字段$_test returnTest

請參閱http://www.php.net/manual/en/language.oop5.late-static-bindings.php以獲取參考。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM