Fonction is_subclass_of

La fonction is_subclass_of vérifie si un objet ou une classe appartient aux classes enfants de la classe spécifiée ou s'il implémente l'interface spécifiée. Le premier paramètre accepte un objet ou un nom de classe, le second - le nom de la classe parente ou de l'interface. Le troisième paramètre optionnel détermine s'il faut prendre en compte le chargement automatique des classes.

Syntaxe

phpis_subclass_of(mixed $object_or_class, string $class, bool $allow_string = true): bool

Exemple

Vérifions l'héritage de classes simples :

php<?php
  class ParentClass {}
  class ChildClass extends ParentClass {}

  $res = is_subclass_of('ChildClass', 'ParentClass');
  var_dump($res);
?>

Résultat de l'exécution du code :

phptrue

Exemple

Vérifions l'implémentation d'une interface :

php<?php
  interface MyInterface {}
  class MyClass implements MyInterface {}

  $res = is_subclass_of('MyClass', 'MyInterface');
  var_dump($res);
?>

Résultat de l'exécution du code :

phptrue

Exemple

Vérification avec un objet au lieu d'un nom de classe :

php<?php
  class Animal {}
  class Dog extends Animal {}

  $dog = new Dog();
  $res = is_subclass_of($dog, 'Animal');
  var_dump($res);
?>

Résultat de l'exécution du code :

phptrue

Exemple

Vérification du cas où une classe n'est pas une classe enfant :

php<?php
  class A {}
  class B {}

  $res = is_subclass_of('B', 'A');
  var_dump($res);
?>

Résultat de l'exécution du code :

phpfalse

Voir aussi

  • la fonction is_a,
    qui vérifie l'appartenance à une classe
  • la fonction class_parents,
    qui retourne tous les parents
  • la fonction get_parent_class,
    qui retourne la classe parente
  • la fonction instanceof,
    opérateur de vérification d'instance