class_parents în PHP

Returnează toate clasele părinte ale unei clase, de la părintele direct până la cel mai vechi strămoș.

Sintaxă
class_parents($object_or_class, bool $autoload = true): array|false

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.