Funkcja is_subclass_of

Funkcja is_subclass_of sprawdza, czy obiekt lub klasa należy do potomków wskazanej klasy lub czy implementuje wskazany interfejs. Pierwszym parametrem przyjmuje obiekt lub nazwę klasy, drugim - nazwę klasy nadrzędnej lub interfejsu. Trzeci opcjonalny parametr określa, czy należy uwzględnić automatyczne ładowanie klas.

Składnia

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

Przykład

Sprawdźmy dziedziczenie prostych klas:

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

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

Wynik wykonania kodu:

phptrue

Przykład

Sprawdźmy implementację interfejsu:

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

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

Wynik wykonania kodu:

phptrue

Przykład

Sprawdzanie z obiektem zamiast nazwy klasy:

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

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

Wynik wykonania kodu:

phptrue

Przykład

Sprawdzanie przypadku, gdy klasa nie jest potomkiem:

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

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

Wynik wykonania kodu:

phpfalse

Zobacz też

  • funkcję is_a,
    która sprawdza przynależność do klasy
  • funkcję class_parents,
    która zwraca wszystkich rodziców
  • funkcję get_parent_class,
    która zwraca klasę nadrzędną
  • funkcję instanceof,
    operator sprawdzania instancji