2012-03-05 103 views
43

這是檢查對象是否是一個類的實例,在我的DateTime類的情況下,唯一的辦法?PHP檢查日期時間的實例?

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

這對我來說似乎有點沉重。

+0

看得那麼清楚:如何知道什麼類的對象實例? (PHP5)(http://stackoverflow.com/questions/1928491/how-to-know-what-c​​lass-is-an-object-instance-of-php5)(不是一個真正的副本) – hakre 2012-03-05 15:48:55

回答

108

你可以嘗試instanceof­Docs ...

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

is_a­Docs請參見:

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

男人,我沒沒有找到與谷歌有關的任何內容..:/謝謝! – 2012-03-05 15:06:28

+2

謝謝你的人!幾小時的頭痛消失了! – 2015-05-10 06:09:22

7

if ($var instanceof DateTime)

6

可以使用get_class函數是這樣的:

<?php 

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

出於某種原因,這一塊的工作,和其他的沒有。 – redolent 2014-05-05 22:45:29

+2

@redolent如果您使用Symfony或其他使用名稱空間的框架,則可能需要在文件頂部聲明'use \ DateTime',以使其在根名稱空間(而不是您的應用程序的名稱空間)中查找「DateTime」 。 – 2014-07-21 21:50:15