【发布时间】:2014-02-20 00:03:13
【问题描述】:
我在做一个 PHP 类的小实验,遇到了这个奇怪的问题。
该类旨在为其 $instance 属性分配一个自身的实例以防 $instance 为 null,但这种机制是应该防止无限的自我繁殖似乎失败了,这就是发生的事情:
致命错误:已达到最大函数嵌套级别“100”,正在中止!
<?php
class SeemsLikeInfinity {
public $instance;
public function __construct() {
if ( $this->instance == null ) {
$this->instance = new self;
}
}
}
$looping = new SeemsLikeInfinity();
?>
为什么会这样? __construct 只是创建了一个空的类的新实例,因此具有空的 $instance,因此再次创建实例,使循环无限?
非常感谢
【问题讨论】:
标签: php loops constructor infinity