Η συνάρτηση is_subclass_of

Η συνάρτηση is_subclass_of ελέγχει εάν ένα αντικείμενο ή μια κλάση ανήκει στους απογόνους της καθορισμένης κλάσης ή εάν υλοποιεί την καθορισμένη διεπαφή. Δέχεται ως πρώτη παράμετρο ένα αντικείμενο ή όνομα κλάσης, ως δεύτερη - το όνομα της γονικής κλάσης ή διεπαφής. Η τρίτη προαιρετική παράμετρος καθορίζει εάν πρέπει να ληφθεί υπόψη η αυτόματη φόρτωση κλάσεων.

Σύνταξη

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

Παράδειγμα

Ας ελέγξουμε την κληρονομικότητα απλών κλάσεων:

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

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

Αποτέλεσμα εκτέλεσης κώδικα:

phptrue

Παράδειγμα

Ας ελέγξουμε την υλοποίηση διεπαφής:

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

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

Αποτέλεσμα εκτέλεσης κώδικα:

phptrue

Παράδειγμα

Έλεγχος με αντικείμενο αντί για όνομα κλάσης:

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

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

Αποτέλεσμα εκτέλεσης κώδικα:

phptrue

Παράδειγμα

Έλεγχος περίπτωσης όπου η κλάση δεν είναι απόγονος:

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

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

Αποτέλεσμα εκτέλεσης κώδικα:

phpfalse

Δείτε επίσης

  • τη συνάρτηση is_a,
    που ελέγχει την ιδιότητα μέλους σε μια κλάση
  • τη συνάρτηση class_parents,
    που επιστρέφει όλους τους γονείς
  • τη συνάρτηση get_parent_class,
    που επιστρέφει τη γονική κλάση
  • τη συνάρτηση instanceof,
    τελεστής ελέγχου στιγμιότυπου