Php 如何获取类的实例?
我必须检查类是否已经初始化(如果我已经初始化:Php 如何获取类的实例?,php,Php,我必须检查类是否已经初始化(如果我已经初始化:$a=newmyclass;)。如何使用PHP实现这一点 谢谢。使用 if ($a instanceof MyClass) ... 一种方法是让类本身跟踪其所有实例: class MyClass { protected static $instances = array(); public function __construct() { self::$instances[] = $this; }
$a=newmyclass;
)。如何使用PHP实现这一点
谢谢。使用
if ($a instanceof MyClass) ...
一种方法是让类本身跟踪其所有实例:
class MyClass {
protected static $instances = array();
public function __construct() {
self::$instances[] = $this;
}
public static function countInstances() {
return count(self::$instances);
}
}
echo MyClass::countInstances();
(销毁实例时注意减少计数/引用,yadayada…)
你也可能只是想更好地跟踪你的变量,这样你就不必以后再去弄清楚,这取决于你的目标是什么。这在某种程度上取决于你为什么真正需要它,但实现这一点最糟糕的方法之一是使用单例。不。(好的..拥有一个全局
$a
会更可怕)
相反,您可以使用一个factory类来创建
MyClass
的实例,从而重新创建相同的效果。基本上,您第一次要做的是将创建的实例存储到工厂的私有/受保护变量中,并返回它。下次检查工厂中是否已经有as存储值。您的意思是某个类是否已经在某个地方使用?不确定这是否可能。你想做什么,你的最终目标是什么?