113 votes

Dynamique de la classe d'invocation de méthode en PHP

Est-il possible d'invoquer dynamiquement une méthode de la même classe pour PHP? Je n'ai pas la syntaxe, mais je suis à la recherche de faire quelque chose de similaire à ceci:

$this->{$methodName}($arg1, $arg2, $arg3);

211voto

andy.gurin Points 1516

Il n'y a plus d'une façon de le faire:

$this->{$methodName}($arg1, $arg2, $arg3);
$this->$methodName($arg1, $arg2, $arg3);
call_user_func_array(array($this, $methodName), array($arg1, $arg2, $arg3));

Vous pouvez même utiliser l'api reflection http://it2.php.net/oop5.reflection

13voto

Konrad Rudolph Points 231505

Juste omettre les accolades:

$this->$methodName($arg1, $arg2, $arg3);

4voto

Peter Bailey Points 62125

Vous pouvez également utiliser call_user_func() et call_user_func_array()

4voto

Noah Goodrich Points 12645

Si vous travaillez au sein d'une classe en PHP, alors je vous recommande d'utiliser la surcharge __fonction d'appel en PHP5. Vous pouvez trouver la référence ici.

Fondamentalement __appel de fonctions dynamiques qu' __ensemble et __get faire pour les variables OO PHP5.

2voto

user46637 Points 1

Dans mon cas.

$response = $client->{$this->requestFunc}($this->requestMsg);

À l'aide de PHP SOAP.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X