instanceof
是 PHP 中用于检查对象是否属于某个类或接口的关键字
<?php
class Animal {}
class Dog extends Animal {}
$animal = new Animal();
$dog = new Dog();
if ($animal instanceof Dog) {
echo "The animal is a dog.";
} else {
echo "The animal is not a dog.";
}
if ($dog instanceof Animal) {
echo "The dog is an animal.";
} else {
echo "The dog is not an animal.";
}
?>
在这个例子中,我们定义了两个类:Animal
和 Dog
。Dog
类继承了 Animal
类。我们创建了两个对象:$animal
和 $dog
。然后我们使用 instanceof
关键字检查这两个对象是否属于相应的类或接口。
第一个 if
语句检查 $animal
是否是 Dog
类的实例。因为 $animal
是通过 new Animal()
创建的,而不是直接通过 new Dog()
创建的,所以 $animal
不是 Dog
类的实例。因此,第一个 if
语句将输出 “The animal is not a dog.”。
第二个 if
语句检查 $dog
是否是 Animal
类的实例。因为 $dog
是通过 new Dog()
创建的,而 Dog
类继承了 Animal
类,所以 $dog
是 Animal
类的实例。因此,第二个 if
语句将输出 “The dog is an animal.”。