我有一个自动加载器,在加载迷你框架时初始化很多对象。对象被保存为静态变量,但现在我遇到了问题。我有一个在自动加载器中实例化的文件,但稍后使用类似于异常处理程序,在调用时处理特殊情况。目的是这个类中的方法返回 $this,类对象,但是这样做时,返回的值不是被调用对象的实例,而是被继承到调用它的类中。此外,被调用的 exception_handler 不仅是它自己的一个实例,而且是整个自动加载器中的所有实例,在加载所有内容时继承 $this。令人困惑,但我建立了一个小例子:
class a {
public $a_tmp = 'tmp';
}
class b extends a {
public $b_tmp = 'tmp';
public function getOnlyThisClass() {
return $this;
}
}
$b = new b();
$b->getOnlyThisClass();
这将返回:
object(b)#1 (2) {
["b_tmp"]=>
string(3) "tmp"
["a_tmp"]=>
string(3) "tmp"
}
当调用特殊方法时,我需要它只返回被调用的类。我知道这可以通过工厂模式解决,但在这种情况下想避免它。
谢谢。