Fonction get_called_class
La fonction get_called_class retourne le nom de la classe dans le contexte de laquelle une méthode statique a été appelée. Ceci est utile lors de travaux avec l'héritage, lorsqu'il est nécessaire de déterminer depuis quelle classe exacte une méthode a été appelée.
Syntaxe
get_called_class();
Exemple
Créons deux classes et appelons une méthode depuis la classe enfant :
<?php
class ParentClass {
public static function test() {
return get_called_class();
}
}
class ChildClass extends ParentClass {}
echo ChildClass::test();
?>
Résultat de l'exécution du code :
'ChildClass'
Exemple
Vérifions le fonctionnement de la fonction lors d'un appel depuis la classe parente :
<?php
class A {
public static function who() {
return get_called_class();
}
}
class B extends A {}
echo A::who();
echo "\n";
echo B::who();
?>
Résultat de l'exécution du code :
'A'
'B'
Exemple
Utilisation de la fonction pour créer des objets de la classe souhaitée :
<?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);
?>
Résultat de l'exécution du code :
'Product'
Voir aussi
-
la fonction get_class,
qui retourne la classe d'un objet -
la fonction get_parent_class,
qui retourne la classe parente