Passer des arguments variables aux fonctions PHP
Lors de la définition de fonctions PHP, vous pouvez rencontrer des scénarios dans lesquels le nombre d'arguments à transmettre n'est pas fixe . Cette flexibilité peut être obtenue en utilisant deux fonctions : func_num_args() et une fonctionnalité spéciale de call_user_func_array().
func_num_args() et func_get_args()
func_num_args() détermine le nombre d'arguments passés à une fonction, tandis que func_get_args() renvoie un tableau contenant les arguments. Ces fonctions aident à écrire des fonctions génériques capables de gérer un nombre variable d'arguments.
Utilisation de call_user_func_array() avec des tableaux
Si vous souhaitez transmettre des arguments stockés dans un tableau, utilisez call_user_func_array(). Il prend deux paramètres : le premier est le nom de la fonction de rappel et le second est un tableau contenant les arguments à transmettre.
Exemple d'utilisation
Considérez la fonction suivante qui prend un nombre variable d'arguments :
function test() { var_dump(func_num_args()); var_dump(func_get_args()); }
Si vous avez un tableau avec les arguments, vous pouvez les regrouper dans ce tableau et le transmettre à test() en utilisant call_user_func_array().
$params = array( 10, 'glop', 'test', ); call_user_func_array('test', $params);
Ce code affichera :
int 3 array 0 => int 10 1 => string 'glop' (length=4) 2 => string 'test' (length=4)
Cela revient à appeler test(10, 'glop', 'test') directement.
En utilisant cette approche, vous peut transmettre dynamiquement n'importe quel nombre d'arguments à une fonction PHP, ce qui en fait un outil polyvalent pour divers scénarios de codage.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!