检查类是否已实例化

Man*_*nsa 2 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!';
}
Run Code Online (Sandbox Code Playgroud)

我是否注释掉了$parse = new parse();“类实例化”?

我该如何检查?

Rah*_*zir 6

您可以使用get_class

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

var_dump ( get_class($parse) );  // return false if object is not instantiated
Run Code Online (Sandbox Code Playgroud)


dec*_*eze 5

如果您有该类型的对象,您就知道您已经实例化了一个类:

$parse instanceof parse
Run Code Online (Sandbox Code Playgroud)

一个类不会跟踪其类型的对象已被实例化的数量。如果你需要,你必须自己做:

class Foo {

    public static $instances = 0;

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

}

new Foo;
new Foo;

echo 'Foo has been instantiated ', Foo::$instances, ' times';
Run Code Online (Sandbox Code Playgroud)

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