Função get_called_class
A função get_called_class retorna o nome da classe no contexto da qual um método estático foi chamado. Isso é útil ao trabalhar com herança, quando é necessário determinar de qual classe exatamente um método foi chamado.
Sintaxe
get_called_class();
Exemplo
Vamos criar duas classes e chamar um método da classe filha:
<?php
class ParentClass {
public static function test() {
return get_called_class();
}
}
class ChildClass extends ParentClass {}
echo ChildClass::test();
?>
Resultado da execução do código:
'ChildClass'
Exemplo
Vamos verificar o funcionamento da função quando chamada da classe pai:
<?php
class A {
public static function who() {
return get_called_class();
}
}
class B extends A {}
echo A::who();
echo "\n";
echo B::who();
?>
Resultado da execução do código:
'A'
'B'
Exemplo
Usando a função para criar objetos da classe necessária:
<?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);
?>
Resultado da execução do código:
'Product'
Veja também
-
a função get_class,
que retorna a classe de um objeto -
a função get_parent_class,
que retorna a classe pai