Función get_called_class
La función get_called_class devuelve el nombre de la clase en cuyo contexto se llamó el método estático. Esto es útil cuando se trabaja con herencia, cuando es necesario determinar desde qué clase exactamente se llamó el método.
Sintaxis
get_called_class();
Ejemplo
Creemos dos clases y llamemos al método desde la clase hija:
<?php
class ParentClass {
public static function test() {
return get_called_class();
}
}
class ChildClass extends ParentClass {}
echo ChildClass::test();
?>
Resultado de la ejecución del código:
'ChildClass'
Ejemplo
Comprobemos el funcionamiento de la función cuando se llama desde la clase padre:
<?php
class A {
public static function who() {
return get_called_class();
}
}
class B extends A {}
echo A::who();
echo "\n";
echo B::who();
?>
Resultado de la ejecución del código:
'A'
'B'
Ejemplo
Uso de la función para crear objetos de la clase necesaria:
<?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);
?>
Resultado de la ejecución del código:
'Product'
Ver también
-
la función get_class,
que devuelve la clase del objeto -
la función get_parent_class,
que devuelve la clase padre