Bonjour,
je développe un code qui doit me permettre selon un fichier de configuration d'appeler dynamiquement une méthode d'un objet PHP.
Peu importe le fichier, en gros, je passe un nom de variable et le nom d'une méthode, et eventuellement une liste de parametres.
Tout fonctionne très bien, sauf pour deux cas
1- la pseudo variable this. Le code suivant (pour test), ne fonctionne pas et retourne "unknown this variable" :
l'erreur est provoquée dès l'instruction
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 $a = "this"; // également essayé avec $a="$this" $b = $$a; // atendu: $a = $this2 - En utilisant call_user_func, je n'arrive pas à passer autre chose qu'une référence d'objet. Par exemple si j'ai besoin de passer comme objet
Code : Sélectionner tout - Visualiser dans une fenêtre à part $b=$$aqui retourne un objet, ca ne fonctionne pas. Le code serait :
Code : Sélectionner tout - Visualiser dans une fenêtre à part $this->getRequest()
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 $obj = new Request(); $a = "obj->getRequest"; // essayé avec "$this->getRequest()" $b = $$a; // erreur
Quelqu'un a-t-il une solution ?
Pour le moment ma seule solution est d'utiliser la fonction PHP "eval", mais je ne la trouve pas très adaptée à mon cas.
Merci !
Partager