Wenn Sie eine Funktion aufrufen, müssen Sie Parameter an die Funktion übergeben. Die übergebenen Parameter werden zu tatsächlichen Parametern, und die Parameter, wenn die Funktion definiert wird, sind formale Parameter. Im vorherigen Kapitel haben wir die Parameter von benutzerdefinierten PHP-Funktionen anhand von Beispielen erklärt. Dieses Kapitel konzentriert sich auf die drei Möglichkeiten, Parameter zwischen Funktionen zu übergeben: Übergabe nach Wert , als Referenz übergeben und Standardparameter .
1. Übergeben Sie den Wert
Weisen Sie den Wert des tatsächlichen Parameters dem entsprechenden formalen Parameter zu, und die Operation innerhalb der Funktion ist für Die formalen Parameter werden verarbeitet, und das Ergebnis der Operation hat keinen Einfluss auf die tatsächlichen Parameter, dh die Werte der tatsächlichen Parameter ändern sich nach der Rückkehr der Funktion nicht. Beim Pass-by-Value-Prozess werden die formalen Parameter der aufgerufenen Funktion als lokale Variablen der aufgerufenen Funktion behandelt, dh im Stapel wird ein Speicherplatz geöffnet, um die Werte der von der aufgerufenen Funktion eingegebenen tatsächlichen Parameter zu speichern die aufrufende Funktion, sodass sie eine Kopie des tatsächlichen Parameters wird. Das Merkmal der Wertübertragung besteht darin, dass jede Operation der aufgerufenen Funktion an den formalen Parametern als lokale Variable ausgeführt wird und sich nicht auf den Wert der tatsächlichen Parametervariablen der aufrufenden Funktion auswirkt.
Definieren Sie zunächst eine Funktion example(), die einige Operationen mit dem übergebenen Parameterwert durchführt und ihn dann ausgibt. Definieren Sie dann eine Variable $m außerhalb der Funktion, die der eigentliche Parameter ist (Mio. $). Geben Sie die Werte des formalen Parameters $m und des tatsächlichen Parameters $m innerhalb bzw. außerhalb des Funktionskörpers aus.
Der Beispielcode wird wie folgt angezeigt:
<?php function example($m){ $m = $m + 10; echo "在函数内部:m = ".$m ."<br>"; //输出形参的值 } $m = 1; example($m); // 将实参$m的值传递给形参$m echo "在函数外部:m = ".$m; // 实参的值没有变化,$m = 1 ?>
Das laufende Ergebnis der Funktion ist wie folgt:
2. Übergabe als Referenz
Bei der Übergabe als Referenz wird die Speicheradresse des tatsächlichen Parameters an den formalen Parameter übergeben. Zu diesem Zeitpunkt wirken sich alle Operationen an den formalen Parametern innerhalb der Funktion auf die Werte der tatsächlichen Parameter aus. Nachdem die Funktion zurückgegeben wurde, ändert sich der Wert des tatsächlichen Parameters. Die Möglichkeit der Referenzübergabe besteht darin, beim Definieren der Funktion die Symbole „& “ vor den formalen Parametern hinzuzufügen. Obwohl die formalen Parameter der aufgerufenen Funktion während des Pass-by-Reference-Prozesses auch Speicherplatz auf dem Stapel als lokale Variablen freigeben, wird zu diesem Zeitpunkt die Adresse der tatsächlichen Parametervariablen gespeichert, die von der aufrufenden Funktion eingegeben wurde. Jede Operation der aufgerufenen Funktion an den formalen Parametern wird als indirekte Adressierung verarbeitet, d. h. der Zugriff auf die tatsächlichen Parametervariablen in der aufrufenden Funktion erfolgt über die im Stapel gespeicherte Adresse. Aus diesem Grund wirkt sich jede Operation, die die aufgerufene Funktion an den formalen Parametern ausführt, auf die tatsächlichen Parametervariablen in der aufrufenden Funktion aus.
Das Codebeispiel lautet wie folgt:
<?php function example(&$m){ //定义一个函数,同时传递参数$m的地址 $m = $m + 10; echo "在函数内部:m = ".$m ."<br>"; //输出形参的值 } $m = 1; example($m); // 将实参$m的地址传递给形参$m echo "在函数外部:m = ".$m; // 实参的值发生了变化,$m = 11 ?>
Das laufende Ergebnis der Funktion lautet wie folgt:
3. Standardparameter (optionale Parameter)
Es gibt eine andere Möglichkeit, Parameter festzulegen, nämlich optionale Parameter. Sie können einen Parameter als optional angeben, den optionalen Parameter am Ende der Parameterliste platzieren und angeben, dass sein Standardwert leer ist.
Wenden Sie ein Beispiel an, um eine einfache Preisberechnungsfunktion mithilfe optionaler Parameter zu implementieren. Legen Sie den Parameter $tax der benutzerdefinierten Funktionswerte als optionalen Parameter fest, und sein Standardwert ist leer. Beim ersten Aufruf der Funktion und dem Parameter $tax wird der Preis ausgegeben, beim zweiten Aufruf wird der Parameter nicht kopiert und der Preis ausgegeben.
Der Code lautet wie folgt:
<?php function value($price, $tax=""){ //定义一个函数,第二个参数为空 $price = $price*$tax; echo "价格:$price<br>"; //输出价格 } value(10,5); // 为可选参数赋值5 value(10); // 没有给可选参数赋值 ?>
Das Ausgabeergebnis ist:
Preis: 50
Preis: 0
Hinweis: Bei Verwendung von Standardparametern müssen die Standardparameter rechts von den Nicht-Parametern platziert werden. Standardparameter, andernfalls ist die Funktion möglicherweise fehlerhaft.
Hinweis: Ab PHP5 können Standardwerte auch per Referenz übergeben werden. Im nächsten Kapitel wird vorgestellt, was der Rückgabewert einer benutzerdefinierten Funktion ist .
【Empfohlene Tutorials】
1. "php.cn Dugu Jiujian (4) - PHP-Video-Tutorial
2 Vollständiger Satz Video-Tutorials zur PHP-Programmierung vom Einstieg bis zum MasterPraktische PHP-Video-TutorialsDas obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der drei Möglichkeiten, Parameter von benutzerdefinierten PHP-Funktionen zwischen Funktionen zu übergeben. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!