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