Funkce is_subclass_of

Funkce is_subclass_of kontroluje, zda objekt nebo třída patří mezi potomky zadané třídy nebo zda implementuje zadané rozhraní. Jako první parametr přijímá objekt nebo název třídy, jako druhý - název rodičovské třídy nebo rozhraní. Třetí volitelný parametr určuje, zda je třeba brát v úvahu automatické načítání tříd.

Syntaxe

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

Příklad

Zkontrolujme dědičnost jednoduchých tříd:

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

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

Výsledek provedení kódu:

phptrue

Příklad

Zkontrolujme implementaci rozhraní:

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

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

Výsledek provedení kódu:

phptrue

Příklad

Kontrola s objektem místo názvu třídy:

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

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

Výsledek provedení kódu:

phptrue

Příklad

Kontrola případu, kdy třída není potomkem:

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

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

Výsledek provedení kódu:

phpfalse

Viz také

  • funkci is_a,
    která kontroluje příslušnost ke třídě
  • funkci class_parents,
    která vrací všechny rodiče
  • funkci get_parent_class,
    která vrací rodičovskou třídu
  • funkci instanceof,
    operátor kontroly instance