如何检查变量是否属于某个类(考虑PHP 5.3命名空间)

时间:2011-06-08 09:56:34

标签: php oop class

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

get_class($obj) == 'User';

但是当我在别处时,它可能看起来像\KM\User?我认为这种方式可能会导致开发人员错误。是否有类似的东西:

compare_class($obj1, User);
// or maybe
classof($obj) == User;

2 个答案:

答案 0 :(得分:1)

使用instanceof运算符:

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

答案 1 :(得分:1)

只需

if ($obj instanceof User) {
  // $obj is of User or any descendant
}

应该这样做。这受5.3命名空间处理的影响,这意味着:如果您在my\namespace,则假定User\my\namespace\User。或者,如果您有类似use another\namespace\User的内容,则会将其视为use - 语句指定的类。