我有一個類Logger
,其中有一個方法Log
。
由於Log
是Logger
實例的最常見的用法,我有線__invoke
調用Log
PHP Callable Object as Object Member
另一類,「網站」包含一個成員「日誌」,記錄器的實例。
爲什麼將這項工作:
$Log = $this->Log;
$Log("Message");
但不是這樣的:
$this->Log("Message");
前者失敗, 「PHP致命錯誤:調用未定義的方法網站::日誌()」
是這是可調用對象實現的限制,還是我誤解了某些東西?
主要是因爲寬鬆的打字。實際上沒有辦法推斷你可能意味着做什麼,所以它默認提前錯誤。 – 2009-11-01 02:21:32
我寫了一個奇怪的preparser,允許寫這樣的表達式:http://code.google.com/p/php-preparser/ :)(我可以在這裏「公佈」我的開源解決方案嗎?) – 2009-11-01 02:23:23
這個例子不再相關,這個語法現在起作用。 – 2014-09-05 15:44:10