如何检查变量是否属于certian类(也考虑PHP5.3命名空间)

如何检查变量是否属于certian类(也考虑PHP5.3命名空间),php,oop,class,Php,Oop,Class,如何验证对象是否属于certian类?我目前使用 get_class($obj) == 'User'; 但当我在别处时,它可能看起来像\KM\User?我认为这种方式可能有点容易出错。是否有类似于: compare_class($obj1, User); // or maybe classof($obj) == User; 使用运算符: if($foo instanceof User) { ... } 只是 我应该这样做。这受5.3命名空间处理的影响,这意味着:如果您在my\nam

如何验证对象是否属于certian类?我目前使用

get_class($obj) == 'User';
但当我在别处时,它可能看起来像
\KM\User
?我认为这种方式可能有点容易出错。是否有类似于:

compare_class($obj1, User);
// or maybe
classof($obj) == User;
使用运算符:

if($foo instanceof User) {
    ...
}
只是


我应该这样做。这受5.3命名空间处理的影响,这意味着:如果您在
my\namespace
中,则假定
User
\my\namespace\User
。或者,如果您有类似于
use-other\namespace\User
的内容,它将被视为与
use
-语句指定的类完全相同。

ahh,我想一定有类似的内容。Thanks@Cold夏威夷人,现在当我发布问题时,但在你提问后我尝试了,是的,我得到了“
KM\User
if ($obj instanceof User) {
  // $obj is of User or any descendant
}