Funkce get_called_class
Funkce get_called_class vrací název třídy, v jejímž kontextu byla volána statická metoda. To je užitečné při práci s děděním, když je potřeba určit, z které konkrétní třídy byla metoda volána.
Syntaxe
get_called_class();
Příklad
Vytvoříme dvě třídy a zavoláme metodu z potomní třídy:
<?php
class ParentClass {
public static function test() {
return get_called_class();
}
}
class ChildClass extends ParentClass {}
echo ChildClass::test();
?>
Výsledek provedení kódu:
'ChildClass'
Příklad
Ověříme funkčnost funkce při volání z rodičovské třídy:
<?php
class A {
public static function who() {
return get_called_class();
}
}
class B extends A {}
echo A::who();
echo "\n";
echo B::who();
?>
Výsledek provedení kódu:
'A'
'B'
Příklad
Použití funkce pro vytváření objektů potřebné třídy:
<?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);
?>
Výsledek provedení kódu:
'Product'
Viz také
-
funkci get_class,
která vrací třídu objektu -
funkci get_parent_class,
která vrací rodičovskou třídu