関数 is_subclass_of
関数 is_subclass_of は、オブジェクトまたはクラスが指定されたクラスの子孫に属するか、または指定されたインターフェースを実装しているかをチェックします。最初のパラメータはオブジェクトまたはクラス名を受け取り、2番目のパラメータは親クラスまたはインターフェースの名前を受け取ります。3番目のオプションパラメータは、クラスのオートローディングを考慮するかどうかを決定します。
構文
is_subclass_of(mixed $object_or_class, string $class, bool $allow_string = true): bool
例
シンプルなクラスの継承をチェックしてみましょう:
<?php
class ParentClass {}
class ChildClass extends ParentClass {}
$res = is_subclass_of('ChildClass', 'ParentClass');
var_dump($res);
?>
コードの実行結果:
true
例
インターフェースの実装をチェックしてみましょう:
<?php
interface MyInterface {}
class MyClass implements MyInterface {}
$res = is_subclass_of('MyClass', 'MyInterface');
var_dump($res);
?>
コードの実行結果:
true
例
クラス名の代わりにオブジェクトを用いたチェック:
<?php
class Animal {}
class Dog extends Animal {}
$dog = new Dog();
$res = is_subclass_of($dog, 'Animal');
var_dump($res);
?>
コードの実行結果:
true
例
クラスが子孫でない場合のチェック:
<?php
class A {}
class B {}
$res = is_subclass_of('B', 'A');
var_dump($res);
?>
コードの実行結果:
false
関連項目
-
クラスへの所属をチェックする関数 is_a,
-
すべての親クラスを返す関数 class_parents,
-
親クラスを返す関数 get_parent_class,
-
インスタンスチェック演算子 instanceof,