示例:一个方法应该返回一个SpecificClass的实例。如果来自该类,我如何检查该返回值?
答案 0 :(得分:64)
您可以使用instanceof
运算符来检查对象是否是以下实例:
这意味着它不能用于检测您的对象是否是specific
类的实例 - 如果您的对象是该类的子类的实例,它将说“是”。
例如,这部分代码:
class ClassA {}
class ClassB extends ClassA {}
$a = new ClassB();
if ($a instanceof ClassA) {
echo '$a is an instanceof ClassA<br />';
}
if ($a instanceof ClassB) {
echo '$a is an instanceof ClassB<br />';
}
会得到这个输出:
$a is an instanceof ClassA
$a is an instanceof ClassB
在某种程度上, $a
是ClassA
的一个实例,因为ClassB
是ClassA
的子类。
当然,$a
也是ClassB
的一个实例 - 请查看它实例化的行。
答案 1 :(得分:7)
您可以使用instanceof
运算符或is_a函数。
is_a
很有用。
答案 2 :(得分:4)
if ($object instanceof classname)
....
答案 3 :(得分:4)
您无法检查返回值本身,但您可以使用“instanceof”检查返回的类。 (在类似的基础上,您可能会发现'get_class'很有用。)