2009-09-19 12 views
0

Je suis en PHP et je dois accéder à une méthode statique d'un objet dont le nom doit changer.Accès à la méthode statique personnalisée PHP

private $controlleur = null; 
    private static $instance = null; 

    private function __construct() { 
    $nomControlleur = "Controlleurs\_" . Session::singleton()->controlleur; 
    $this->controlleur = $nomControlleur::singleton(); 
    } 

Ce code précédent me donne "Erreur de syntaxe inattendue ::".
J'ai aussi essayé d'écrire {$ nomControlleur} :: singleton(); mais il me donne encore plus d'erreurs, merci beaucoup pour votre aide.

billes d'acier

Répondre

2

Utilisation:

$this->controlleur = call_user_func(array($nomControlleur, 'singleton')); 

ou (5.2.3+ seulement)

$this->controlleur = call_user_func($nomControlleur . '::singleton'); 
0

Qu'en est-

$staticCall = $nonController."::singleton()"; 
$staticCall(); 

?

+0

Merci, presque, mais je trouve avec votre commentaire. Tirez juste de la balise() dans singleton() quand vous l'appelez cela donne singleton()(); – malavv