phpのinstanceof演算子の働きは何ですか?
PHPにおいて、instanceof演算子は、オブジェクトが特定のクラスのインスタンスまたはそのサブクラスのインスタンスであるかどうかを判定するために使用されます。これは、オブジェクトの型が特定のクラスかそのサブクラスであるかどうかを判断し、ブール値を返します。通常、型のチェックやオブジェクトのポリモーフィズムの判断に使用されます。
instanceof演算子の構文は以下のとおりです:
$object instanceof ClassName
「$object はオブジェクトであり、ClassName はクラス名です。」
これは私のお気に入りの本です。
class Animal {
// ...
}
class Dog extends Animal {
// ...
}
$animal = new Animal();
$dog = new Dog();
var_dump($animal instanceof Animal); // bool(true)
var_dump($animal instanceof Dog); // bool(false)
var_dump($dog instanceof Animal); // bool(true)
var_dump($dog instanceof Dog); // bool(true)
上記の例では、$animalはAnimalクラスのインスタンスであり、したがって$animal instanceof Animalはtrueを返します。しかし、$animalはDogクラスのインスタンスではないので、$animal instanceof Dogはfalseを返します。一方、$dogはDogクラスのインスタンスであり、かつAnimalクラスのインスタンスでもあるため、$dog instanceof Animalと$dog instanceof Dogはどちらもtrueを返します。