Funkcia get_called_class
Funkcia get_called_class vráti názov triedy, v kontexte ktorej bola volaná statická metóda. Toto je užitočné pri práci s dedením, keď je potrebné určiť, z ktorej konkrétnej triedy bola metóda volaná.
Syntax
get_called_class();
Príklad
Vytvoríme dve triedy a zavoláme metódu z odvodenej triedy:
<?php
class ParentClass {
public static function test() {
return get_called_class();
}
}
class ChildClass extends ParentClass {}
echo ChildClass::test();
?>
Výsledok vykonania kódu:
'ChildClass'
Príklad
Skontrolujeme činnosť funkcie pri volaní z nadradenej triedy:
<?php
class A {
public static function who() {
return get_called_class();
}
}
class B extends A {}
echo A::who();
echo "\n";
echo B::who();
?>
Výsledok vykonania kódu:
'A'
'B'
Príklad
Použitie funkcie na vytvorenie objektov požadovanej triedy:
<?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ýsledok vykonania kódu:
'Product'
Pozrite tiež
-
funkciu get_class,
ktorá vráti triedu objektu -
funkciu get_parent_class,
ktorá vráti nadradenú triedu