Ce face class_parents
Spre deosebire de get_parent_class, care dă doar părintele direct, class_parents returnează tot lanțul de moștenire. Cheile și valorile sunt numele claselor.
Parametri
| Parametru | Descriere |
|---|---|
$object_or_class |
Obiectul sau numele clasei. |
$autoload |
Opțional. false ca să nu pornească autoloader-ul. |
Ce returnează
Tabloul claselor părinte (gol dacă nu există) sau false dacă clasa nu există.
Exemple
Exemplul 1: Lanțul de moștenire
<?php
class Utilizator {}
class Angajat extends Utilizator {}
class Manager extends Angajat {}
print_r(class_parents("Manager"));
print_r(class_parents(new InvalidArgumentException()));
Rezultat
Array
(
[Angajat] => Angajat
[Utilizator] => Utilizator
)
Array
(
[LogicException] => LogicException
[Exception] => Exception
)
Greșeli frecvente
- Te aștepți să apară și clasa însăși în rezultat. Apar doar părinții.
Comenzi înrudite
get_class / get_parent_class: Returnează numele clasei unui obiect (get_class) sau numele clasei părinte (get_parent_class).class_implements: Returnează interfețele implementate de o clasă sau de un obiect, inclusiv cele moștenite.extends / parent::: Creează o clasă nouă pornind de la una existentă (moștenire). Clasa copil primește tot ce are părintele.is_a / is_subclass_of: Verifică dacă un obiect este de o clasă sau o moștenește (is_a). is_subclass_of exclude clasa însăși.