<?php
class foo {}
class bar extends foo {}
class baz extends bar {}
print_r(class_parents(new baz));
?>
Will output:
Array
(
[bar] => bar
[foo] => foo
)
(PHP 5, PHP 7, PHP 8)
class_parents — Retourne les classes parentes d'une classe
class_parents() retourne un tableau avec le
nom des classes parentes de la classe object_or_class
.
object_or_class
Un objet (instance) ou une chaîne de caractères (nom de la classe).
autoload
Défini s'il faut autocharger si pas déjà autochargé.
Un tableau en cas de succès, ou false
quand la classe donnée n'existe pas.
Exemple #1 Exemple avec class_parents()
<?php
class foo { }
class bar extends foo {}
print_r(class_parents(new bar));
// vous pouvez aussi spécifier le paramètre comme une chaîne de caractères
print_r(class_parents('bar'));
spl_autoload_register();
// Utilisation de l'autoloading pour charger la classe 'not_loaded'
print_r(class_parents('not_loaded', true));
?>
Résultat de l'exemple ci-dessus est similaire à :
Array ( [foo] => foo ) Array ( [foo] => foo ) Array ( [parent_de_not_loaded] => parent_de_not_loaded )
Note: Il est préférable d'utiliser
instanceof
ou la fonction is_a() pour vérifier qu'un objet implémente une interface.
instanceof
<?php
class foo {}
class bar extends foo {}
class baz extends bar {}
print_r(class_parents(new baz));
?>
Will output:
Array
(
[bar] => bar
[foo] => foo
)