PHP personalizado Acceso método estático
-
11-09-2019 - |
Pregunta
Estoy en PHP y tengo que acceder a un método estático de un objeto que debe cambiar el nombre.
private $controlleur = null;
private static $instance = null;
private function __construct() {
$nomControlleur = "Controlleurs\_" . Session::singleton()->controlleur;
$this->controlleur = $nomControlleur::singleton();
}
Este código anterior es que me da "error de sintaxis inesperada ::".
También he intentado escribir {} $ nomControlleur :: singleton (); pero me da incluso más errores,
muchas gracias por su ayuda.
Bolas de acero
Solución
Uso:
$this->controlleur = call_user_func(array($nomControlleur, 'singleton'));
o (sólo 5.2.3+)
$this->controlleur = call_user_func($nomControlleur . '::singleton');
Otros consejos
¿Qué pasa
$staticCall = $nonController."::singleton()";
$staticCall();
Ahora pienso en PHP 5.3 también hay PHP __callStatic()
ya que no había __call()
.
Así se puede definir __callStatic()
e indefinida llamada al método estático llegará a este método.
Por favor marque aquí para más detalles y el uso.
http://www.php.net/ manual / en / language.oop5.overloading.php # object.callstatic
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow