Si vous avez vos arguments dans un tableau, vous pourriez être intéressé par la call_user_func_array
fonction.
Si le nombre d'arguments que vous souhaitez transmettre dépend de la longueur d'un tableau, cela signifie probablement que vous pouvez les regrouper eux-mêmes dans un tableau - et utiliser celui-ci pour le deuxième paramètre de call_user_func_array
.
Les éléments de ce tableau que vous passez seront alors reçus par votre fonction en tant que paramètres distincts.
Par exemple, si vous avez cette fonction:
function test() {
var_dump(func_num_args());
var_dump(func_get_args());
}
Vous pouvez regrouper vos paramètres dans un tableau, comme ceci:
$params = array(
10,
'glop',
'test',
);
Et, ensuite, appelez la fonction:
call_user_func_array('test', $params);
Ce code sera la sortie:
int 3
array
0 => int 10
1 => string 'glop' (length=4)
2 => string 'test' (length=4)
c'est-à-dire 3 paramètres; exactement comme si la fonction était appelée de cette façon:
test(10, 'glop', 'test');