Функция is_subclass_of
Функция is_subclass_of
проверяет, принадлежит ли объект или класс к потомкам указанного класса либо реализует ли он указанный интерфейс. Первым параметром принимает объект или имя класса, вторым - имя родительского класса или интерфейса. Третий необязательный параметр определяет, нужно ли учитывать автозагрузку классов.
Синтаксис
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,
оператор проверки экземпляра