Функция is_subclass_of

Функция is_subclass_of проверяет, принадлежит ли объект или класс к потомкам указанного класса либо реализует ли он указанный интерфейс. Первым параметром принимает объект или имя класса, вторым - имя родительского класса или интерфейса. Третий необязательный параметр определяет, нужно ли учитывать автозагрузку классов.

Синтаксис

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

Смотрите также

  • функцию is_a,
    которая проверяет принадлежность к классу
  • функцию class_parents,
    которая возвращает всех родителей
  • функцию get_parent_class,
    которая возвращает родительский класс
  • функцию instanceof,
    оператор проверки экземпляра