Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Funktionsreferenzparameterfunktion

PHP-Funktionsreferenzparameterfunktion

伊谢尔伦
伊谢尔伦Original
2017-05-10 11:25:313693Durchsuche

Einführung in Funktionen, die auf Parameter verweisen

In PHP werden Parameter standardmäßig als Wert übergeben, und die Parameter der Funktion sind daher auch lokale Variablen Auch in der Funktion ändert das interne Ändern des Werts eines Parameters nicht den Wert außerhalb der Funktion. Im vorherigen Abschnitt wurden herkömmliche Parameterfunktionen und Pseudotyp-Parameterfunktionen in PHP vorgestellt. In diesem Abschnitt wird erläutert, wie Parameter referenziert werden. Wenn die Funktion ein Unterprogramm ist, kann das Programm, das die Funktion aufruft, als übergeordnetes Programm bezeichnet werden. Das übergeordnete Programm übergibt den angegebenen Wert oder die angegebene Variable direkt zur Verwendung an die Funktion. Da der übergebene Wert oder die übergebene Variable und der Wert in der Funktion in unterschiedlichen Speicherblöcken gespeichert werden, hat eine Änderung des importierten Werts durch die Funktion keine direkten Auswirkungen auf das übergeordnete Programm.

Die Funktionsformatbeschreibung der PHP-Referenzparameter lautet wie folgt:

void funName(array &arg)                     // 在参数列表中出现使用 &描述的参数

Das Folgende ist ein Beispiel für PHP-Referenzparameter:

<?php
 //声明一个函数作为测试
 function test($a){
   $a = 200;     // 函数中改变参数值为200
 }
 $b = 100;       // 父程序中声明一个全局变量$b并给一个初始值100
 test($b);       // 调用test函数 将100传给函数的参数
 echo $b;        // 输出100 $b的值没变化
?>

Im obigen Beispiel wird beim Aufruf der Funktion test() der Wert der globalen Variablen $b an die Funktion test() übergeben. Obwohl der Variablen $a in der Funktion test() ein neuer Wert von 200 zugewiesen wird, kann der Wert der Variablen $b außerhalb der Funktion nicht geändert werden. Nach dem Aufruf der Funktion test() beträgt der von der Variablen $b ausgegebene Wert immer noch 100. Wenn Sie einer Funktion erlauben möchten, ihre Argumentwerte zu ändern, müssen Sie das Argument als Referenz übergeben.

Im Vergleich zum Pass-by-Value-Modus wird der angegebene Wert oder die Zielvariable im übergeordneten Programm nicht an die Funktion übergeben, sondern die relative Adresse des Speicherblocks des Werts oder der Variablen wird importiert die Funktion. Wenn der Wert in der Funktion auf irgendeine Weise geändert wird, wirkt sich dies daher auch auf das übergeordnete Programm aus. Wenn Sie möchten, dass ein Parameter einer Funktion immer als Referenz übergeben wird, stellen Sie dem Parameter in der Funktionsdefinition das Symbol & voran.

Ändern Sie das vorherige Beispiel:

<?php
 //声明一个函数作为测试
 function test(&$a){
   $a = 200;     // 函数中改变参数值为200,加使用 & 引用参数$a,外部变量被修改
 }
 $b = 100;       // 父程序中声明一个全局变量$b并给一个初始值100
 test($b);       // 调用test函数 将变量$b的引用传给函数的参数$a
 echo $b;        // 输出200 $b的值在函数中修改变量$a时被修改
?>

Im obigen Beispiel wird beim Aufruf der Funktion test() der Wert der globalen Variablen $b nicht übergeben Geben Sie die Funktion test() an. Es ist ersichtlich, dass in der Definition der Funktion test() das Referenzsymbol & verwendet wird, um anzugeben, dass die Variable $a als Referenz übergeben wird. Im Funktionskörper wird der Variablen $a ein neuer Wert von 200 zugewiesen. Da die externen Daten durch Referenz geändert werden, wird auch der Wert der externen Variablen $b geändert. Nachdem der Funktionsaufruf beendet ist, können Sie sehen, dass der Ausgabewert der Variablen $b 200 beträgt.

Hinweis: Wenn in den formalen Parametern der Funktion & geänderte Parameter vorhanden sind. Beim Aufruf der Funktion müssen Sie dann eine Variable an diesen Parameter übergeben, jedoch keinen Wert.

【Empfohlene verwandte Tutorials】

1. "php.cn Dugu Jiujian (4) - PHP-Video-Tutorial

2 Eine vollständige Reihe von Video-Tutorials zur PHP-Programmierung vom Einstieg bis zur Beherrschung


3.

Praktische PHP-Video-Tutorials

Das obige ist der detaillierte Inhalt vonPHP-Funktionsreferenzparameterfunktion. 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