我正在尝试确定是否已创建给定对象.我看到有一些用于class_exists和method_exists的方法,但是我想弄清楚的是是否调用了新的Foo()(并希望弄清楚它被分配给了什么变量,但这并不那么重要).
解决方法:
如果我对您的理解正确,那么您将只尝试初始化一次对象.如果是这种情况,为什么不使用单例模式?这将使您免于检查对象是否存在:
class MyClass {
private static $instance;
private function __construct() {}
public static function getInstance() {
if (empty(self::$instance)) {
self::$instance = new __CLASS__();
}
return self::$instance;
}
}
您可以使用以下代码:
$obj = MyClass::getInstance();
使用类似的方法,您可以定义其他辅助静态方法,这些方法将检查对象是否已实例化.您只需要在类中静态保留实例即可.