Recuperando o nome da classe da chamada estática na classe PHP estendida
no mundo das PHP, é geralmente necessário determinar o nome da classe a partir de uma chamada de função estática, especialmente ao trabalhar com as classes extensas. Considere o seguinte cenário:
class Action {
function n() {/* some implementation */}
}
class MyAction extends Action {/* further implementation */}
nessa situação, chamando myaction :: n (); deve retornar "myaction" como o nome da classe. No entanto, a variável __class__ retorna apenas o nome da classe pai ("ação"). Esse recurso possibilita determinar a classe chamada usando a função get_called_class ():
classe ação { função estática pública n () { return get_called_class (); } } classe MyAction estende a ação { } eco myaction :: n (); // output: myaction
abordagem alternativa (pré-php 5.3):
class Action {
public static function n() {
return get_called_class();
}
}
class MyAction extends Action {
}
echo MyAction::n(); // Output: MyAction
função pública n () {
retornar get_class ($ this);
}
}
classe MyAction estende a ação {
}
$ foo = new myaction;
echo $ foo-> n (); // output: myaction lembre-se, essa abordagem funciona apenas para métodos não estáticos, pois a função get_class () leva uma instância da classe como um argumento.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3