Funktion is_subclass_of

Die Funktion is_subclass_of prüft, ob ein Objekt oder eine Klasse zu den Nachkommen der angegebenen Klasse gehört oder ob es das angegebene Interface implementiert. Der erste Parameter akzeptiert ein Objekt oder einen Klassennamen, der zweite - den Namen der Elternklasse oder des Interfaces. Der dritte optionale Parameter legt fest, ob das automatische Laden von Klassen berücksichtigt werden soll.

Syntax

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

Beispiel

Prüfen wir die Vererbung einfacher Klassen:

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

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

Ergebnis der Codeausführung:

phptrue

Beispiel

Prüfen wir die Implementierung eines Interfaces:

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

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

Ergebnis der Codeausführung:

phptrue

Beispiel

Prüfung mit einem Objekt anstelle eines Klassennamens:

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

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

Ergebnis der Codeausführung:

phptrue

Beispiel

Prüfung des Falls, wenn die Klasse kein Nachkomme ist:

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

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

Ergebnis der Codeausführung:

phpfalse

Siehe auch

  • die Funktion is_a,
    die die Zugehörigkeit zu einer Klasse prüft
  • die Funktion class_parents,
    die alle Eltern zurückgibt
  • die Funktion get_parent_class,
    die die Elternklasse zurückgibt
  • die Funktion instanceof,
    den Instanzprüfungsoperator