Funcția get_called_class
Funcția get_called_class returnează numele clasei în contextul căreia a fost apelată metoda statică. Acest lucru este util în lucrul cu moștenirea, atunci când trebuie să determinați din ce clasă exact a fost apelată metoda.
Sintaxă
get_called_class();
Exemplu
Să creăm două clase și să apelăm metoda din clasa copil:
<?php
class ParentClass {
public static function test() {
return get_called_class();
}
}
class ChildClass extends ParentClass {}
echo ChildClass::test();
?>
Rezultatul executării codului:
'ChildClass'
Exemplu
Să verificăm funcționarea funcției la apelarea din clasa părinte:
<?php
class A {
public static function who() {
return get_called_class();
}
}
class B extends A {}
echo A::who();
echo "\n";
echo B::who();
?>
Rezultatul executării codului:
'A'
'B'
Exemplu
Utilizarea funcției pentru a crea obiecte din clasa necesară:
<?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);
?>
Rezultatul executării codului:
'Product'
Vedeți și
-
funcția get_class,
care returnează clasa obiectului -
funcția get_parent_class,
care returnează clasa părinte