Maison >développement back-end >tutoriel php >Explication détaillée de trois façons de transmettre les paramètres des fonctions personnalisées PHP entre les fonctions

Explication détaillée de trois façons de transmettre les paramètres des fonctions personnalisées PHP entre les fonctions

伊谢尔伦
伊谢尔伦original
2017-05-04 15:32:5714075parcourir

Lors de l'appel d'une fonction, vous devez transmettre des paramètres à la fonction. Les paramètres transmis deviennent des paramètres réels et les paramètres lorsque la fonction est définie sont des paramètres formels. Dans le chapitre précédent, nous avons expliqué les paramètres des fonctions personnalisées php avec des exemples Ce chapitre se concentrera sur les trois manières de passer des paramètres entre les fonctions : Passez par valeur , <.> passé par référence et paramètres par défaut .

1. Passer par valeur

Attribuez la valeur du paramètre réel au paramètre formel correspondant, et l'opération à l'intérieur de la fonction est pour Les paramètres formels sont traités et le résultat de l'opération n'affectera pas les paramètres réels, c'est-à-dire que les valeurs des paramètres réels ne changeront pas après le retour de la fonction. Dans le processus de passage par valeur, les paramètres formels de la fonction appelée sont traités comme des variables locales de la fonction appelée, c'est-à-dire qu'un espace mémoire est ouvert dans la pile pour stocker les valeurs des paramètres réels entrés par la fonction appelante, de sorte que Devienne une copie du paramètre réel. La caractéristique du transfert de valeur est que toute opération de la fonction appelée sur les paramètres formels est effectuée comme une variable locale et n'affectera pas la valeur de la variable paramètre réelle de la fonction appelante.

Définissez d'abord une fonction example(), qui effectue certaines opérations sur la valeur du paramètre transmise, puis la génère ; définit ensuite une variable $m en dehors de la fonction, qui est le paramètre réel et appelle enfin l'exemple de fonction ; (en millions de dollars). Affichez les valeurs du paramètre formel $m et du paramètre réel $m respectivement à l'intérieur et à l'extérieur du corps de la fonction.

L'exemple de code s'affiche comme suit :

<?php
 function example($m){
   $m = $m + 10;
   echo "在函数内部:m = ".$m ."<br>";  //输出形参的值
 }
 $m = 1;
 example($m);                  // 将实参$m的值传递给形参$m
 echo "在函数外部:m = ".$m;         // 实参的值没有变化,$m = 1
?>
Le résultat d'exécution de la fonction est le suivant :

Explication détaillée de trois façons de transmettre les paramètres des fonctions personnalisées PHP entre les fonctions

2. Passage par référence

Le passage par référence consiste à transmettre l'adresse mémoire du paramètre réel au paramètre formel. À ce stade, toutes les opérations sur les paramètres formels au sein de la fonction affecteront les valeurs des paramètres réels. Après le retour de la fonction, la valeur du paramètre réel changera. La façon de passer par référence est d'ajouter les symboles "

& " devant les paramètres formels lors de la définition de la fonction. Pendant le processus de passage par référence, bien que les paramètres formels de la fonction appelée ouvrent également de l'espace mémoire sur la pile en tant que variables locales, ce qui est stocké à ce moment-là est l'adresse de la variable paramètre réelle saisie par la fonction appelante. Toute opération de la fonction appelée sur les paramètres formels est traitée comme un adressage indirect, c'est-à-dire que les variables de paramètre réelles dans la fonction appelante sont accessibles via l'adresse stockée dans la pile. Pour cette raison, toute opération effectuée par la fonction appelée sur les paramètres formels affecte les variables de paramètre réelles dans la fonction appelante.

L'exemple de code est le suivant :

<?php
function example(&$m){             //定义一个函数,同时传递参数$m的地址
 $m = $m + 10;
 echo "在函数内部:m = ".$m ."<br>";  //输出形参的值
}
$m = 1;
example($m);                   // 将实参$m的地址传递给形参$m
echo "在函数外部:m = ".$m;         // 实参的值发生了变化,$m = 11
?>
Le résultat d'exécution de la fonction est le suivant :

Explication détaillée de trois façons de transmettre les paramètres des fonctions personnalisées PHP entre les fonctions

3. Paramètres par défaut (paramètres facultatifs)

Il existe une autre façon de définir les paramètres, c'est-à-dire les paramètres facultatifs. Vous pouvez spécifier un paramètre comme facultatif, placer le paramètre facultatif à la fin de la liste des paramètres et spécifier que sa valeur par défaut est vide.

Appliquez un exemple pour implémenter une fonction de calcul de prix simple à l'aide de paramètres facultatifs. Définissez le paramètre $tax des valeurs de fonction personnalisée comme paramètre facultatif et sa valeur par défaut est vide. La première fois que la fonction est appelée et que le paramètre $tax reçoit une valeur, le prix est affiché ; la deuxième fois que la fonction est appelée, le paramètre n'est pas copié et le prix est affiché.

Le code est le suivant :

<?php
function value($price, $tax=""){     //定义一个函数,第二个参数为空
 $price = $price*$tax;
 echo "价格:$price<br>";   //输出价格
}
value(10,5);            // 为可选参数赋值5
value(10);              // 没有给可选参数赋值
?>
Le résultat de sortie est :

Prix : 50

Prix : 0

Remarque : lors de l'utilisation des paramètres par défaut, les paramètres par défaut doivent être placés à droite du non- paramètres par défaut, sinon la fonction peut être en erreur.

Remarque : à partir de PHP5, les valeurs par défaut peuvent également être transmises par référence. Le chapitre suivant présentera

quelle est la valeur de retour d'une fonction personnalisée .

【Tutoriels recommandés】

1. "

php.cn Dugu Jiujian (4) - Tutoriel vidéo PHP "

2. ensemble complet de didacticiels vidéo sur la programmation PHP de l'entrée au master


3

Tutoriels vidéo pratiques PHP

.

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