Funzione get_called_class
La funzione get_called_class restituisce il nome della classe nel contesto del quale è stato chiamato il metodo statico. Questo è utile quando si lavora con l'ereditarietà, quando è necessario determinare da quale classe esattamente è stato chiamato il metodo.
Sintassi
get_called_class();
Esempio
Creiamo due classi e chiamiamo il metodo dalla classe figlia:
<?php
class ParentClass {
public static function test() {
return get_called_class();
}
}
class ChildClass extends ParentClass {}
echo ChildClass::test();
?>
Risultato dell'esecuzione del codice:
'ChildClass'
Esempio
Verifichiamo il funzionamento della funzione quando chiamata dalla classe padre:
<?php
class A {
public static function who() {
return get_called_class();
}
}
class B extends A {}
echo A::who();
echo "\n";
echo B::who();
?>
Risultato dell'esecuzione del codice:
'A'
'B'
Esempio
Utilizzo della funzione per creare oggetti della classe desiderata:
<?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);
?>
Risultato dell'esecuzione del codice:
'Product'
Vedi anche
-
la funzione get_class,
che restituisce la classe dell'oggetto -
la funzione get_parent_class,
che restituisce la classe padre