Η συνάρτηση is_subclass_of
Η συνάρτηση is_subclass_of ελέγχει εάν ένα αντικείμενο ή μια κλάση ανήκει στους απογόνους της καθορισμένης κλάσης ή εάν υλοποιεί την καθορισμένη διεπαφή. Δέχεται ως πρώτη παράμετρο ένα αντικείμενο ή όνομα κλάσης, ως δεύτερη - το όνομα της γονικής κλάσης ή διεπαφής. Η τρίτη προαιρετική παράμετρος καθορίζει εάν πρέπει να ληφθεί υπόψη η αυτόματη φόρτωση κλάσεων.
Σύνταξη
is_subclass_of(mixed $object_or_class, string $class, bool $allow_string = true): bool
Παράδειγμα
Ας ελέγξουμε την κληρονομικότητα απλών κλάσεων:
<?php
class ParentClass {}
class ChildClass extends ParentClass {}
$res = is_subclass_of('ChildClass', 'ParentClass');
var_dump($res);
?>
Αποτέλεσμα εκτέλεσης κώδικα:
true
Παράδειγμα
Ας ελέγξουμε την υλοποίηση διεπαφής:
<?php
interface MyInterface {}
class MyClass implements MyInterface {}
$res = is_subclass_of('MyClass', 'MyInterface');
var_dump($res);
?>
Αποτέλεσμα εκτέλεσης κώδικα:
true
Παράδειγμα
Έλεγχος με αντικείμενο αντί για όνομα κλάσης:
<?php
class Animal {}
class Dog extends Animal {}
$dog = new Dog();
$res = is_subclass_of($dog, 'Animal');
var_dump($res);
?>
Αποτέλεσμα εκτέλεσης κώδικα:
true
Παράδειγμα
Έλεγχος περίπτωσης όπου η κλάση δεν είναι απόγονος:
<?php
class A {}
class B {}
$res = is_subclass_of('B', 'A');
var_dump($res);
?>
Αποτέλεσμα εκτέλεσης κώδικα:
false
Δείτε επίσης
-
τη συνάρτηση is_a,
που ελέγχει την ιδιότητα μέλους σε μια κλάση -
τη συνάρτηση class_parents,
που επιστρέφει όλους τους γονείς -
τη συνάρτηση get_parent_class,
που επιστρέφει τη γονική κλάση -
τη συνάρτηση instanceof,
τελεστής ελέγχου στιγμιότυπου