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