Je ne sais pas ce que vous entendez par « poignées l'existance éventuelle des méthodes et leur appel à leurs variables respectives », mais vous pourriez être après call_user_func_array
:
call_user_func_array(
array($myArray[0], $myArray[1]),
array($myArray[2])
);
Si vous voulez faire pour l'instance concrète que vous avez créée avec $controller = new $myArray(0)
, remplacez $myArray[0]
par $controller
, par exemple
$controller = new $myArray(0);
call_user_func_array(
array($controller, $myArray[1]),
array($myArray[2])
);
ou passer new $myArray[0]
si vous ne se soucient de l'instance étant perdu après l'appel
call_user_func_array(
array(new $myArray[0], $myArray[1]),
array($myArray[2])
);
Sinon, vous aurez un avis E_STRICT
et ne peut pas faire référence à $this
dans tout ce qui est myMethod
. Voir aussi le PHP manual on possible callback formats.
Pour valider la méthode et la classe existe en fait, vous pouvez utiliser
Exemple:
if (method_exists($myArray[0], $myArray[1])) {
call_user_func_array(*/ … */)
}
S'il vous plaît préciser vos ques tion si quelque chose d'autre est signifié. On a sidenote, this was probably answered before, mais comme je ne suis pas sûr de la question, je ne sais pas non plus lequel choisir.
cela ne fonctionne avec des méthodes statiques, sinon vous avez besoin d'une instance de la classe –
@kemp pas vrai, mais il a ajouté des précisions. Je pense que c'est ce que tu voulais dire. – Gordon
vous avez raison, mon mauvais –