需要一些幫助瞭解我的PHP代碼中發生了什麼。爲什麼調用實例化的PHP類方法?
的index.php
include("cache.php");
$cache = new Cache();
cache.php
class Cache {
private static $URL_CACHE;
public function cache($url, $entityId) {
echo '<br>caching '.$url.' as '.$entityId;
}
當我要求的index.php,我得到顯示,這是一個驚喜 '作爲緩存'。我從來沒有打過電話$cache->cache('', '');
什麼是調用方法?
根據布萊克的回答,由於方法名稱與類名相匹配(有點),因此它在實例化時被調用。對於Java開發人員來說,這肯定會是一個驚喜。
這是使用不推薦的PHP功能來充當'__contruct()'方法。在舊版本的PHP中(7中刪除)如果您有一個名爲'Foo'的類和一個名爲'foo()'的函數,那麼您將如何將其稱爲構造函數。簡而言之,你正在通過實例化這個類來調用它。如果將'cache()'方法更改爲'makeCache()',我敢打賭它會消失。 – Blake
@布萊克你可以把它當作aswer) –
對。改變了方法名稱,它起作用。請使用你的回答作爲答案,這樣其他人就不會花時間去追逐它。 – jacekn