Heim  >  Artikel  >  Backend-Entwicklung  >  Welche Möglichkeiten gibt es, Parameter an Funktionen in PHP zu übergeben?

Welche Möglichkeiten gibt es, Parameter an Funktionen in PHP zu übergeben?

青灯夜游
青灯夜游Original
2021-07-20 19:44:448631Durchsuche

Methoden zum Übergeben von Parametern in PHP-Funktionen: 1. Übergeben Sie den Wert, kopieren Sie den Wert des tatsächlichen Parameters und übergeben Sie ihn an den formalen Parameter der Funktion. 2. Übergeben Sie ihn als Referenz, kopieren Sie die Speicheradresse des tatsächlichen Parameters und übergeben Sie ihn es zum formalen Parameter der Funktion Parameter; 3. Standardparameter, geben Sie einen Standardwert für einen oder mehrere formale Parameter der Funktion an. 4. Parameter variabler Länge, die als Array an die Funktion übergeben werden.

Welche Möglichkeiten gibt es, Parameter an Funktionen in PHP zu übergeben?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, PHP-Version 7.1, DELL G3-Computer

Beim Aufrufen einer Funktion müssen Sie Parameter an die Funktion übergeben. Die an die Funktion übergebenen Parameter werden als tatsächliche Parameter bezeichnet , und die durch die Funktionsparameter definierten Parameter werden als formale Parameter bezeichnet. Es gibt vier Möglichkeiten, Parameter an eine Funktion zu übergeben: Übergabe als Wert, Übergabe als Referenz, Standardparameter und Parameter variabler Länge.

1. Wertübergabe

Wertübergabe ist die Standardmethode zur Wertübergabe für Funktionen in PHP, auch bekannt als „Kopieren nach Wert“. Wie der Name schon sagt, kopiert die Wertübergabemethode den Wert des tatsächlichen Parameters und übergibt ihn dann an den formalen Parameter der Funktion, sodass die Bearbeitung des Parameterwerts in der Funktion keine Auswirkungen auf die tatsächlichen Parameter außerhalb der Funktion hat. Wenn Sie also nicht möchten, dass die Funktion den Wert des tatsächlichen Parameters ändert, können Sie ihn als Wert übergeben.

【Beispiel】Im Folgenden wird eine einfache Funktion definiert. Die Funktion verfügt über zwei Parameter, und die Werte der Parameter werden in der Funktion ausgetauscht.

<?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;
?>

Die Laufergebnisse sind wie folgt:

函数外,交换前 $x = 5, $y = 7
函数内,交换前 $a = 5, $b = 7
函数内,交换后 $a = 7, $b = 5
函数外,交换后 $x = 5, $y = 7

Sie können den Laufergebnissen entnehmen, dass innerhalb der Funktion die Werte tatsächlich ausgetauscht werden, sich die Werte jedoch außerhalb der Funktion nicht ändern. Wir können also sagen, dass die Übergabe einer Funktion als Wert lediglich die Übergabe einer Kopie der Variablen ist. Wenn Sie also möchten, dass die Funktion tatsächliche Parameter außerhalb der Funktion bearbeiten kann, müssen Sie die Referenzübergabe verwenden.

2. Übergabe per Referenz

Bei der Übergabe per Referenz wird die Speicheradresse des tatsächlichen Parameters kopiert und dann an den formalen Parameter der Funktion übergeben. Sowohl der tatsächliche Parameter als auch der formale Parameter verweisen auf dieselbe Speicheradresse , sodass die Funktion den formalen Parameter ändert. Die Operation wirkt sich auf die tatsächlichen Parameter außerhalb der Funktion aus.

Übergabe als Referenz bedeutet, dass die Speicheradresse des tatsächlichen Parameters an den formalen Parameter der Funktion übergeben wird. Daher zeigen die tatsächlichen Parameter und die formalen Parameter auf dieselbe Speicheradresse. Zu diesem Zeitpunkt wirken sich alle Operationen innerhalb der Funktion auf die Werte tatsächlicher Parameter außerhalb der Funktion aus. Die Methode der Referenzübergabe besteht darin, ein &-Symbol auf der Grundlage der Wertübergabe hinzuzufügen, wie unten gezeigt:

function name (&参数1, &参数2, ..., &参数3) {
    ...    
}

[Beispiel] Passen Sie den Code des obigen Beispiels leicht an und verwenden Sie die Methode der Referenzübergabe, um Parameter an zu übergeben Swap-Funktion. Der Code lautet wie folgt:

<?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;
?>

Die laufenden Ergebnisse sind wie folgt:

函数外,交换前 $x = 5, $y = 7
函数内,交换前 $a = 5, $b = 7
函数内,交换后 $a = 7, $b = 5
函数外,交换后 $x = 7, $y = 5

3. Standardparameter

Die Standardparameter dienen dazu, einen Standardwert für einen oder mehrere formale Parameter der Funktion anzugeben Wenn der entsprechende Wert beim Aufruf der Funktion nicht übergeben wird, verwendet die Funktion diesen Standardwert, wodurch Fehler beim Aufruf ohne Parameter vermieden und einige Programme sinnvoller gemacht werden können. Bei Übergabe der entsprechenden Parameter wird dieser Standardwert ersetzt.

Die Standardparameter der Funktion lauten wie folgt:

function name ($str = &#39;PHP中文网&#39;, $url) {
    echo $str;  
}

Unter ihnen ist das „PHP Chinese Network“ nach dem formalen Parameter $str sein Standardwert, und zwischen den formalen Parametern und den Standardwerten muss eine = Verbindung verwendet werden .

[Beispiel] Definieren wir eine Funktion mit Standardparametern wie folgt:

<?php
    function add($a, $b=56){
        echo $a.&#39; + &#39;.$b.&#39; = &#39;.($a+$b).&#39;<br>&#39;;
    }
    add(11);
    add(37, 29);
?>

Das laufende Ergebnis lautet wie folgt:

11 + 56 = 67
37 + 29 = 66

Die Standardparameter können auch mehrere sein und die Standardparameter müssen rechts von den Nicht-Parametern platziert werden. Standardparameter und angegeben Der Wert des Standardparameters muss ein bestimmter Wert sein, z. B. eine Zahl oder eine Zeichenfolge, jedoch keine Variable.

[Beispiel] Definieren wir eine Funktion mit mehreren Standardparametern wie folgt:

<?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);
?>

Die laufenden Ergebnisse sind wie folgt:

11 + 33 + 57 = 101
31 + 22 + 57 = 110
64 + 9 + 7 = 80

4. Parameter variabler Länge

In PHP 5.6 und späteren Versionen sind die formalen Parameter von a Funktion kann ... verwenden, um anzugeben, dass die Funktion eine variable Anzahl von Parametern akzeptieren kann und die variablen Parameter als Array an die Funktion übergeben werden. Das Beispiel lautet wie folgt:

<?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);
?>

Das laufende Ergebnis lautet wie folgt:

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
)
Array
(
    [0] => 5
    [1] => 6
    [2] => 7
    [3] => 8
    [4] => 9
    [5] => 10
)

Empfohlenes Lernen: „PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonWelche Möglichkeiten gibt es, Parameter an Funktionen in PHP zu übergeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn