2012-03-05 121 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