Maison  >  Article  >  développement back-end  >  Comment puis-je transmettre un nombre variable d’arguments aux fonctions PHP ?

Comment puis-je transmettre un nombre variable d’arguments aux fonctions PHP ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-08 10:28:02934parcourir

How Can I Pass Variable Number of Arguments to PHP Functions?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn