Функцыя get_called_class
Функцыя get_called_class
вяртае імя класа, у кантэксце якога быў выкліканы статычны метад. Гэта карысна пры рабоце з наследаваннем, калі трэба вызначыць, з якога менавіта класа быў выкліканы метад.
Сінтаксіс
get_called_class();
Прыклад
Стварым два класа і выклічам метад з даччынага класа:
<?php
class ParentClass {
public static function test() {
return get_called_class();
}
}
class ChildClass extends ParentClass {}
echo ChildClass::test();
?>
Вынік выканання кода:
'ChildClass'
Прыклад
Праверым работу функцыі пры выкліку з бацькоўскага класа:
<?php
class A {
public static function who() {
return get_called_class();
}
}
class B extends A {}
echo A::who();
echo "\n";
echo B::who();
?>
Вынік выканання кода:
'A'
'B'
Прыклад
Выкарыстанне функцыі для стварэння аб'ектаў патрэбнага класа:
<?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);
?>
Вынік выканання кода:
'Product'
Глядзіце таксама
-
функцыю get_class,
якая вяртае клас аб'екта -
функцыю get_parent_class,
якая вяртае бацькоўскі клас