Η συνάρτηση get_called_class
Η συνάρτηση get_called_class επιστρέφει το όνομα της κλάσης, στο πλαίσιο της οποίας κλήθηκε μια στατική μέθοδος. Αυτό είναι χρήσιμο όταν εργάζεστε με κληρονομικότητα, όταν πρέπει να προσδιορίσετε από ποια ακριβώς κλάση κλήθηκε η μέθοδος.
Σύνταξη
get_called_class();
Παράδειγμα
Ας δημιουργήσουμε δύο κλάσεις και ας καλέσουμε τη μέθοδο από την παιδική κλάση:
<?php
class ParentClass {
public static function test() {
return get_called_class();
}
}
class ChildClass extends ParentClass {}
echo ChildClass::test();
?>
Αποτέλεσμα εκτέλεσης κώδικα:
'ChildClass'
Παράδειγμα
Ας ελέγξουμε τη λειτουργία της συνάρτησης όταν καλείται από την γονική κλάση:
<?php
class A {
public static function who() {
return get_called_class();
}
}
class B extends A {}
echo A::who();
echo "\n";
echo B::who();
?>
Αποτέλεσμα εκτέλεσης κώδικα:
'A'
'B'
Παράδειγμα
Χρήση της συνάρτησης για δημιουργία αντικειμένων της απαιτούμενης κλάσης:
<?php
class Factory {
public static function create() {
$class = get_called_class();
return new $class;
}
}
class Product extends Factory {}
$obj = Product::create();
echo get_class($obj);
?>
Αποτέλεσμα εκτέλεσης κώδικα:
'Product'
Δείτε επίσης
-
τη συνάρτηση get_class,
που επιστρέφει την κλάση ενός αντικειμένου -
τη συνάρτηση get_parent_class,
που επιστρέφει την γονική κλάση