Функцијата 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,
која го враќа родителскиот клас