Maison >développement back-end >Problème PHP >Quels sont les moyens de passer des paramètres aux fonctions en php ?

Quels sont les moyens de passer des paramètres aux fonctions en php ?

青灯夜游
青灯夜游original
2021-07-20 19:44:448798parcourir

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.

Quels sont les moyens de passer des paramètres aux fonctions en php ?

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 &#39;函数内,交换前 $a = &#39;.$a.&#39;, $b = &#39;.$b.&#39;<br>&#39;;
        $temp = $a;
        $a = $b;
        $b = $temp;
        echo &#39;函数内,交换后 $a = &#39;.$a.&#39;, $b = &#39;.$b.&#39;<br>&#39;;
    }
    $x = 5;
    $y = 7;
    echo &#39;函数外,交换前 $x = &#39;.$x.&#39;, $y = &#39;.$y.&#39;<br>&#39;;
    swap($x, $y);
    echo &#39;函数外,交换后 $x = &#39;.$x.&#39;, $y = &#39;.$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 &#39;函数内,交换前 $a = &#39;.$a.&#39;, $b = &#39;.$b.&#39;<br>&#39;;
        $temp = $a;
        $a = $b;
        $b = $temp;
        echo &#39;函数内,交换后 $a = &#39;.$a.&#39;, $b = &#39;.$b.&#39;<br>&#39;;
    }
    $x = 5;
    $y = 7;
    echo &#39;函数外,交换前 $x = &#39;.$x.&#39;, $y = &#39;.$y.&#39;<br>&#39;;
    swap($x, $y);
    echo &#39;函数外,交换后 $x = &#39;.$x.&#39;, $y = &#39;.$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 = &#39;PHP中文网&#39;, $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.&#39; + &#39;.$b.&#39; = &#39;.($a+$b).&#39;<br>&#39;;
    }
    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.&#39; + &#39;.$b.&#39; + &#39;.$c.&#39; = &#39;.($a+$b+$c).&#39;<br>&#39;;
    }
    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 &#39;<pre class="brush:php;toolbar:false">&#39;;
    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!

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