我正在做一個PHP實驗的小實驗,我遇到了這個奇怪的問題。功能調用自己無限?
類意的情況下,$實例,其$實例屬性分配本身一個實例是空,但這種機制應該防止無限自我繁衍,似乎失敗了,這是發生的事情:
Fatal error: Maximum function nesting level of '100' reached, aborting!
<?php
class SeemsLikeInfinity {
public $instance;
public function __construct() {
if ($this->instance == null) {
$this->instance = new self;
}
}
}
$looping = new SeemsLikeInfinity();
?>
爲什麼會出現這種情況? __construct僅創建一個空的類的新實例,因此具有空的$實例,因此再次創建該實例,使循環無限?
非常感謝您
謝謝,它試圖實現一個Singleton模式,但我可能錯了。 我知道$ this代表當前對象的實例,我試圖創建一個能夠使用$ object-> instance-> doSomething()訪問的對象,而實例包含$ object的一個實例。 – user3104270
更新瞭如何正確創建單例。 –
這也會導致'致命錯誤:當不在對象上下文中使用$ this'我相信...... – CD001