Introduction
Note: Le code source complet pour l'exemple dans ce tutoriel peut être téléchargée à la fin du tutoriel. Note: Essayer de faire dans la C ? Check this out . Lorsque vous déclarez une fonction, le type et le nombre d'arguments sont généralement fixés à la compilation. Mais il est parfois nécessaire pour une fonction de pouvoir accepter un certain nombre d'arguments variable inconnue jusqu'à l'exécution.
Ce tutoriel va vous montrer comment créer une fonction PHP qui peut accepter un nombre variable d'arguments.
In a Nutshell
Si vous cherchez tout simplement un exemple pour aller au large de, je ne vais pas vous faire attendre. Voici un exemple d'une somme en fonction () qui additionne tous les entiers qui lui est passé et renvoie la somme:
<?php
function sum() {
$num = func_num_args();
$total = 0;
for( $i = 0; $i < $num; ++$i ) {
$total += func_get_arg($i);
}
return $total;
}
$total = sum(1, 2, 3, 4, 5);
echo "Total: $total";
?>
}
- <?php
- function sum() {
-
- $num = func_num_args();
-
- $total = 0;
- for( $i = 0; $i < $num; ++$i ) {
- $total += func_get_arg($i);
- }
-
- return $total;
- }
-
- $total = sum(1, 2, 3, 4, 5);
- echo "Total: $total";
- ?>
- }
How It Works
Regardons le code ligne par ligne:
Nous déclarons notre fonction. Notez que nous n'avons pas besoin de faire quelque chose de spécial ici, juste de déclarer la fonction comme s'il s'agissait d'une fonction normale sans paramètres.
func_num_args est une fonction PHP qui renvoie le nombre d'arguments qui étaient passés dans la fonction. Ici, on stocke cette valeur dans une variable appelée
$ num .
$total = 0;
for( $i = 0; $i < $num; ++$i ) {
$total += func_get_arg($i);
}
- $total = 0;
- for( $i = 0; $i < $num; ++$i ) {
- $total += func_get_arg($i);
- }
Boucle maintenant dans la liste d'arguments et d'ajouter leurs valeurs au total.
func_get_arg est une fonction PHP le récupère la valeur du spécifié par l'index qui lui est passé.
<?php
function sum() {
$args = func_get_args();
$num = func_num_args();
$total = 0;
for( $i = 0; $i < $num; ++$i ) {
$total += $args[$i];
}
return $total;
}
$total = sum(1, 2, 3, 4, 5);
echo "Total: $total";
?>
- <?php
- function sum() {
-
- $args = func_get_args();
- $num = func_num_args();
-
- $total = 0;
- for( $i = 0; $i < $num; ++$i ) {
- $total += $args[$i];
- }
-
- return $total;
- }
-
- $total = sum(1, 2, 3, 4, 5);
- echo "Total: $total";
- ?>
L'autre méthode consiste à faire passer des arguments à une fonction, comme un appareil autonome de tableau ou tableau associatif:
function sum( $args ) {
if( !is_array($args) || is_empty($args) ) {
return 0;
}
$num = sizeof($args);
$total = 0;
for( $i = 0; $i < $num; ++$i ) {
$total += $args[$i];
}
return $total;
}
$total = sum(array(1, 2, 3, 4, 5));
echo "Total: $total";
?>
- function sum( $args ) {
-
- if( !is_array($args) || is_empty($args) ) {
- return 0;
- }
-
- $num = sizeof($args);
-
- $total = 0;
- for( $i = 0; $i < $num; ++$i ) {
- $total += $args[$i];
- }
-
- return $total;
- }
- $total = sum(array(1, 2, 3, 4, 5));
- echo "Total: $total";
- ?>
Conclusion
Vous devriez maintenant savoir comment créer une fonction PHP qui accepte un nombre variable d'arguments lors de l'exécution. Cette technique est particulièrement utile pour créer des fonctions wrapper pour les fonctions qui acceptent déjà un certain nombre d'arguments variable, comme printf (). Cela est démontré dans mon tutoriel d'autres,
Rédaction d'un printf () personnalisée Wrapper Fonction en PHP .
J'ai toujours les bienvenus questions ou des commentaires sur ce tutoriel. Il suffit de poster une réponse ou PM moi, im glad to help!
MultipleArgumentsPHP.zip
(465 Octets) Téléchargé 375 fois
Complete source code for the sum() example used in this tutorial.