Méthodes de transmission des paramètres dans les fonctions PHP : 1. Passer par valeur, copier la valeur du paramètre réel et la transmettre au paramètre formel de la fonction 2. Passer par référence, copier l'adresse mémoire du paramètre réel et transmettre ; au paramètre formel de la fonction Paramètres ; 3. Paramètres par défaut, spécifiez une valeur par défaut pour un ou plusieurs paramètres formels de la fonction ; 4. Paramètres de longueur variable, qui seront transmis à la fonction sous forme de tableau.
L'environnement d'exploitation de ce tutoriel : système Windows 7, PHP version 7.1, ordinateur DELL G3
Lors de l'appel d'une fonction, vous devez transmettre des paramètres à la fonction. Les paramètres passés dans la fonction sont appelés paramètres réels. , et les paramètres définis par la fonction Paramètres sont appelés paramètres formels. Il existe quatre façons de transmettre des paramètres à une fonction, à savoir le passage par valeur, le passage par référence, les paramètres par défaut et les paramètres de longueur variable.
1. Passage de valeur
Le passage de valeur est la méthode de passage de valeur par défaut pour les fonctions en PHP, également connue sous le nom de "copie passant par valeur". Comme son nom l'indique, la méthode de transmission de valeur copiera la valeur du paramètre réel, puis la transmettra au paramètre formel de la fonction, donc l'utilisation de la valeur du paramètre dans la fonction n'affectera pas les paramètres réels en dehors de la fonction. Par conséquent, si vous ne souhaitez pas que la fonction modifie la valeur du paramètre réel, vous pouvez le transmettre par valeur.
【Exemple】Ce qui suit définit une fonction simple. La fonction a deux paramètres, et les valeurs des paramètres sont échangées dans la fonction.
<?php function swap($a, $b){ echo '函数内,交换前 $a = '.$a.', $b = '.$b.'<br>'; $temp = $a; $a = $b; $b = $temp; echo '函数内,交换后 $a = '.$a.', $b = '.$b.'<br>'; } $x = 5; $y = 7; echo '函数外,交换前 $x = '.$x.', $y = '.$y.'<br>'; swap($x, $y); echo '函数外,交换后 $x = '.$x.', $y = '.$y; ?>
Les résultats d'exécution sont les suivants :
函数外,交换前 $x = 5, $y = 7 函数内,交换前 $a = 5, $b = 7 函数内,交换后 $a = 7, $b = 5 函数外,交换后 $x = 5, $y = 7
Vous pouvez voir à partir des résultats d'exécution que les valeurs sont effectivement échangées au sein de la fonction, mais il n'y a aucun changement dans les valeurs en dehors de la fonction. On peut donc dire que passer une fonction par valeur revient simplement à transmettre une copie de la variable. Donc, si vous souhaitez que la fonction puisse opérer sur des paramètres externes de la fonction, vous devez utiliser le passage de références.
2. Passage par référence
Le passage par référence consiste à copier l'adresse mémoire du paramètre réel, puis à la transmettre au paramètre formel de la fonction. Le paramètre réel et le paramètre formel pointent vers la même adresse mémoire. , donc la fonction modifie le paramètre formel. L'opération affectera les paramètres réels en dehors de la fonction.
Passer par référence signifie passer l'adresse mémoire du paramètre réel au paramètre formel de la fonction. Par conséquent, les paramètres réels et les paramètres formels pointent vers la même adresse mémoire. À ce stade, toutes les opérations à l'intérieur de la fonction affecteront les valeurs des paramètres réels en dehors de la fonction. La méthode de passage par référence consiste à ajouter un symbole & sur la base du passage de valeur, comme indiqué ci-dessous :
function name (&参数1, &参数2, ..., &参数3) { ... }
[Exemple] Ajustez légèrement le code de l'exemple ci-dessus et utilisez la méthode de passage par référence pour transmettre les paramètres au fonction d'échange. Le code est le suivant Comme indiqué :
<?php function swap(&$a, &$b){ echo '函数内,交换前 $a = '.$a.', $b = '.$b.'<br>'; $temp = $a; $a = $b; $b = $temp; echo '函数内,交换后 $a = '.$a.', $b = '.$b.'<br>'; } $x = 5; $y = 7; echo '函数外,交换前 $x = '.$x.', $y = '.$y.'<br>'; swap($x, $y); echo '函数外,交换后 $x = '.$x.', $y = '.$y; ?>
Les résultats d'exécution sont les suivants :
函数外,交换前 $x = 5, $y = 7 函数内,交换前 $a = 5, $b = 7 函数内,交换后 $a = 7, $b = 5 函数外,交换后 $x = 7, $y = 5
3. Paramètres par défaut
Les paramètres par défaut doivent spécifier une valeur par défaut pour un ou plusieurs paramètres formels de la fonction. . Si la valeur correspondante n'est pas transmise lors de l'appel de la fonction, alors la fonction utilisera cette valeur par défaut, ce qui peut éviter les erreurs lors de l'appel sans paramètres et peut également rendre certains programmes plus raisonnables. Si les paramètres correspondants sont transmis, cette valeur par défaut sera remplacée.
Les paramètres par défaut de la fonction sont les suivants :
function name ($str = 'PHP中文网', $url) { echo $str; }
Parmi eux, le "PHP Chinese Network" après le paramètre formel $str est sa valeur par défaut, et = une connexion doit être utilisée entre les paramètres formels et les valeurs par défaut .
[Exemple] Définissons une fonction avec des paramètres par défaut comme suit :
<?php function add($a, $b=56){ echo $a.' + '.$b.' = '.($a+$b).'<br>'; } add(11); add(37, 29); ?>
Le résultat d'exécution est le suivant :
11 + 56 = 67 37 + 29 = 66
Les paramètres par défaut peuvent également être multiples, et les paramètres par défaut doivent être placés à droite du non- paramètres par défaut et spécifiés La valeur du paramètre par défaut doit être une valeur spécifique, telle qu'un nombre ou une chaîne, et ne peut pas être une variable.
[Exemple] Définissons une fonction avec plusieurs paramètres par défaut comme suit :
<?php function add($a, $b=33, $c=57){ echo $a.' + '.$b.' + '.$c.' = '.($a+$b+$c).'<br>'; } add(11); add(31, 22); add(64, 9, 7); ?>
Les résultats d'exécution sont les suivants :
11 + 33 + 57 = 101 31 + 22 + 57 = 110 64 + 9 + 7 = 80
4. Paramètres de longueur variable
Dans PHP 5.6 et versions ultérieures, les paramètres formels d'un. la fonction peut utiliser... pour indiquer que la fonction peut accepter un nombre variable de paramètres, et les paramètres variables seront transmis à la fonction sous forme de tableau. L'exemple est le suivant :
<?php function test(...$arr){ print_r($arr); } echo '<pre class="brush:php;toolbar:false">'; test(1, 2, 3, 4); test(5, 6, 7, 8, 9, 10); ?>
Le résultat d'exécution est le suivant :
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 ) Array ( [0] => 5 [1] => 6 [2] => 7 [3] => 8 [4] => 9 [5] => 10 )
Apprentissage recommandé : "Tutoriel vidéo 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!