[英]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.