12/04/2013 Passer un tableau en guise d'arguments d'une fonction PHP
En travaillant sur un script de filtrage, j'ai été confronté à un cas intéressant. Le système doit lancer une fonction dont il connaît le nom (stocké une variable $nomFonction) et dont il possède les arguments (stockés dans une variable $arguments).
function fonctionTest($a,$b) {
return $a.",".$b;
}
$nomFonction="fonctionTest";
$arguments=array("first","second");
Hors de question d'essayer un $fonctionTest($arguments) ... $arguments serait bien récupéré, mais dans la variable $a, quant à $b, délaissée, elle générerait une erreur Missing argument 2 for fonctionTest().
La fonction call_user_func() n'est pas plus utile, car notre problème, c'est qu'on ignore le nombre d'arguments attendus par la fonction de rappel.
Mais on chauffe... PHP possède une variante nommée call_user_func_array() et qui permet - pour copier-coller le titre de ce billet - de "passer un tableau en guise d'arguments d'une fonction PHP".
echo call_user_func_array(
$nomFonction,
$tableauArguments
);
// affichera "first,second"
Commentaires
Ajouter un commentaire :
- Votre commentaire a bien été posté et sera publié après validation par le webmaster du site.