2012-03-05 10 views
43

내 경우 DateTime 클래스의 경우 개체가 클래스의 인스턴스인지 확인하는 유일한 방법입니까?PHP가 DateTime 인스턴스를 확인합니까?

$cls = ReflectionClass("DateTime"); 
if (! $cls->isInstance((object) $var)) { 
    // is not an instance 
} 

내게 약간 무거워 보입니다.

+0

다음을 참조하십시오 : [어떤 클래스가 객체 인스턴스인지 어떻게 알 수 있습니까? (php5)] (http://stackoverflow.com/questions/1928491/how-to-know-what-class-is-an-object-instance-of-php5) (실제로 복제 안됨) – hakre

답변

108

당신은 instanceof­Docs을 시도 할 수 ...

if ($var instanceof DateTime) { 
    // true 
} 

is_a­Docs 참조 :

if (is_a($var, 'DateTime')) { 
    // true 
} 
+6

남자, google로 그것에 관하여 무엇이든을 찾아 내지 않는다. :/당신을 감사하십시오! –

+2

감사합니다. 두통의 시간은 없어졌습니다! –

7

if ($var instanceof DateTime)

6

instanceof에 대해 당신은 다음과 같은 기능을 get_class 사용할 수 있습니다

<?php 

    $a = new DateTime(); 
    if (get_class($a) == 'DateTime') { 
     echo "Datetime"; 
    } 
+0

웬일인지이 하나는 효과가 있었고 다른 것은 효과가 없었습니다. – redolent

+2

@idolent Symfony 또는 네임 스페이스를 사용하는 다른 프레임 워크를 사용하는 경우 루트 네임 스페이스 (응용 프로그램의 네임 스페이스가 아닌)에서'DateTime'을 찾기 위해 파일 상단에'use \ DateTime'을 선언해야 할 수도 있습니다. . –

관련 문제