関数 is_subclass_of

関数 is_subclass_of は、オブジェクトまたはクラスが指定されたクラスの子孫に属するか、または指定されたインターフェースを実装しているかをチェックします。最初のパラメータはオブジェクトまたはクラス名を受け取り、2番目のパラメータは親クラスまたはインターフェースの名前を受け取ります。3番目のオプションパラメータは、クラスのオートローディングを考慮するかどうかを決定します。

構文

phpis_subclass_of(mixed $object_or_class, string $class, bool $allow_string = true): bool

例

シンプルなクラスの継承をチェックしてみましょう:

php<?php
  class ParentClass {}
  class ChildClass extends ParentClass {}

  $res = is_subclass_of('ChildClass', 'ParentClass');
  var_dump($res);
?>

コードの実行結果:

phptrue

例

インターフェースの実装をチェックしてみましょう:

php<?php
  interface MyInterface {}
  class MyClass implements MyInterface {}

  $res = is_subclass_of('MyClass', 'MyInterface');
  var_dump($res);
?>

コードの実行結果:

phptrue

例

クラス名の代わりにオブジェクトを用いたチェック:

php<?php
  class Animal {}
  class Dog extends Animal {}

  $dog = new Dog();
  $res = is_subclass_of($dog, 'Animal');
  var_dump($res);
?>

コードの実行結果:

phptrue

例

クラスが子孫でない場合のチェック:

php<?php
  class A {}
  class B {}

  $res = is_subclass_of('B', 'A');
  var_dump($res);
?>

コードの実行結果:

phpfalse

関連項目