2
請查看以下代碼。雖然我沒有將測試方法定義爲靜態,但可以通過A :: test()來訪問。怎麼可能?它在PHP中的錯誤?爲什麼可以通過靜態調用訪問公共函數 - PHP?
class A {
public function test(){
echo __CLASS__;
}
}
A::test(); //Print 'A'
如果我嘗試訪問test()方法內的任何公共成員,它給我一個錯誤。見下文。
class A {
public $name = 'jimit';
public static function test(){
echo $this->name;
echo __CLASS__;
}
}
A::test(); //Error
請幫我澄清一下事情。
感謝, Jimit
第一個示例確實會產生錯誤,您只是看不到它。在錯誤報告中啓用'E_STRICT'。 – DCoder