检查是否已实例化类

时间:2014-02-27 09:36:08

标签: php class

我试图找出如何检查是否已实例化一个类:

include("includes/class.parse.php"); // Include the class
$parse = new parse(); // instantiate the class

if(class_exists('parse')){
    echo 'Class instantiated!';
} else {
    echo 'Class NOT instantiated!';
}

我是否注释掉了$parse = new parse();或者我是否获得了“Class instantiated”?

我该怎么检查?

2 个答案:

答案 0 :(得分:4)

您可以使用get_class

$parse = new parse(); // instantiate the class

var_dump ( get_class($parse) );  // return false if object is not instantiated

答案 1 :(得分:3)

如果你有一个这种类型的对象,你知道你已经实例化了一个类:

$parse instanceof parse

类不会跟踪实例化了多少个类型的对象。如果您需要,您必须自己完成:

class Foo {

    public static $instances = 0;

    public function __construct() {
        self::$instances++;
    }

}

new Foo;
new Foo;

echo 'Foo has been instantiated ', Foo::$instances, ' times';

但是,我没有理由这样做,这是相当无用的信息。