PHP personalizado acesso método estático
-
11-09-2019 - |
Pergunta
Estou em PHP e eu preciso acessar um método estático de um objeto cujo nome deve mudar.
private $controlleur = null;
private static $instance = null;
private function __construct() {
$nomControlleur = "Controlleurs\_" . Session::singleton()->controlleur;
$this->controlleur = $nomControlleur::singleton();
}
Este código anterior está me dando "Erro de sintaxe inesperado ::".
escrita Eu também tentei {$ nomControlleur} :: singleton (); mas ele está me dando ainda mais erros,
muito obrigado pela sua ajuda.
Bolas de aço
Solução
Use:
$this->controlleur = call_user_func(array($nomControlleur, 'singleton'));
ou (5.2.3+ apenas)
$this->controlleur = call_user_func($nomControlleur . '::singleton');
Outras dicas
E
$staticCall = $nonController."::singleton()";
$staticCall();
?
Eu penso agora em PHP 5.3 também há PHP __callStatic()
como havia __call()
.
Então você pode definir __callStatic()
e indefinida chamada de método estático vai bater este método.
Por favor, verifique aqui para mais detalhes e uso.
http://www.php.net/ manual / en / language.oop5.overloading.php # object.callstatic
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow