2014-02-27 5 views
2

인스턴스화 된 경우?확인 클래스는 내가 클래스를 인스턴스화 한 경우 내가 확인할 수있는 방법을 알아 내려고 노력하고 있어요

어떻게 확인할 수 있습니까?

+0

클래스를 두 번 인스턴스화하지 않으려면 [싱글 톤 패턴] (http://en.wikipedia.org/wiki/Singleton_pattern)을 찾으십시오. – evuez

+1

"인스턴스화 된"이라는 용어는 일반적으로 _ 개체가 있음을 나타냅니다 instantiated_, 우리는 클래스에 대해 "정의 된"것을 말합니다. 너는 이것을 혼합하는 것 같다. 클래스가 정의되지 않았다면 2 행에서 런타임 오류가 발생합니다. 나중에 테스트 할 때 의미가 없습니다. 만약 그 클래스의 _object_가 인스턴스화되었는지 정말로 테스트하고 싶다면'class_exists()'는 도움이되지 않습니다. 대신 객체가 존재하는지, 문제의 클래스 ('is_a()'또는'get_class()')의 인스턴스 생성인지 테스트해야합니다 ... – arkascha

+0

왜이 정보가 필요한지 생각해보십시오. – deceze

답변

4

당신은 당신이 그 유형의 개체가 있다면 당신은 클래스의 인스턴스를 한 것을 알고 get_class

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

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

을 사용할 수 있습니다 : 클래스는 추적하지 않습니다

$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'; 

그러나, 나는 그것이 오히려 쓸모없는 정보이다, 그렇게 할 이유가 표시되지 않습니다.

관련 문제