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
is_subclass_of(mixed $object_or_class, string $class, bool $allow_string = true): bool
Příklad
Zkontrolujme dědičnost jednoduchých tříd:
<?php
class ParentClass {}
class ChildClass extends ParentClass {}
$res = is_subclass_of('ChildClass', 'ParentClass');
var_dump($res);
?>
Výsledek provedení kódu:
true
Příklad
Zkontrolujme implementaci rozhraní:
<?php
interface MyInterface {}
class MyClass implements MyInterface {}
$res = is_subclass_of('MyClass', 'MyInterface');
var_dump($res);
?>
Výsledek provedení kódu:
true
Příklad
Kontrola s objektem místo názvu třídy:
<?php
class Animal {}
class Dog extends Animal {}
$dog = new Dog();
$res = is_subclass_of($dog, 'Animal');
var_dump($res);
?>
Výsledek provedení kódu:
true
Příklad
Kontrola případu, kdy třída není potomkem:
<?php
class A {}
class B {}
$res = is_subclass_of('B', 'A');
var_dump($res);
?>
Výsledek provedení kódu:
false
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