get_parent_class

get_parent_class($object_or_class)

Renvoie le nom de la classe dont la classe donnée hérite directement. Pour une classe sans parent, elle renvoie false.

Paramètres

  • $object_or_class – un objet ou un nom de classe. L’appel sans paramètre est obsolète depuis PHP 8.3.

Exemples

class Animal {}
class Chien extends Animal {}
class Teckel extends Chien {
    public function ancetre() { return get_parent_class($this); }
}
echo get_parent_class(new Teckel()); // Chien
echo get_parent_class("Chien"); // Animal
var_dump(get_parent_class("Animal")); // bool(false)
echo (new Teckel())->ancetre(); // Chien
// toute la chaîne des ancêtres
$t = "Teckel";
$ancetres = array();
while (($t = get_parent_class($t)) !== false) $ancetres[] = $t;
echo implode(" < ", $ancetres); // Chien < Animal
// class_parents() renvoie la même chose
echo implode(", ", class_parents("Teckel")); // Chien, Animal

Points d’attention

  • Sans paramètre, elle renvoie le parent de la classe dans laquelle la méthode est écrite, pas celui de la classe de l’objet. PHP 8.3 et plus récent signalent un tel appel comme obsolète (Deprecated) : écrivez get_parent_class($this) ou parent::class.
  • Une classe qui n’existe pas, donnée sous forme de texte : PHP 7.4 renvoie false, PHP 8 lève une exception TypeError.
  • Elle ne renvoie que le parent direct. Tous les ancêtres sont renvoyés par class_parents().

Fonctions associées :
get_class()
is_subclass_of()
get_called_class()
class_exists()