Функция 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,
оператор за проверка на инстанция