用于确定一个 PHP 变量是否属于某一类 class 的实例
//例:对类使用instanceof
class Test1 {
}
class Test2 {
}
$t1 = new Test1;
var_dump($t1 instanceof Test1); //bool(true)
var_dump($t1 instanceof Test2); //bool(false)
也可用来确定一个变量是不是继承自某一父类的子类的实例
//例:对继承类使用instanceof
class Test3 {
}
class Test4 extends Test3 {
}
$t2 = new Test4;
var_dump($t2 instanceof Test3); //bool(true)
var_dump($t2 instanceof Test4); //bool(true)
也可用于确定一个变量是不是实现了某个接口的对象的实例
interface Test {
}
class Test6 implements Test {
}
$t3 = new Test6;
var_dump($t3 instanceof Test6); //bool(true)
var_dump($t3 instanceof Test); //bool(true)
虽然 instanceof 通常直接与类名一起使用,但也可以使用对象或字符串变量
interface MyInterface
{
}
class MyClass implements MyInterface
{
}
$a = new MyClass;
$b = new MyClass;
$c = 'MyClass';
$d = 'NotMyClass';
var_dump($a instanceof $b); // $b is an object of class MyClass //bool(true)
var_dump($a instanceof $c); // $c is a string 'MyClass' //bool(true)
var_dump($a instanceof $d); // $d is a string 'NotMyClass' //bool(false)