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

¿Fue útil?

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
scroll top