Heim  >  Artikel  >  Backend-Entwicklung  >  Welche Beziehung besteht zwischen Parameterübergabemethoden von PHP-Funktionen und Referenzvariablen?

Welche Beziehung besteht zwischen Parameterübergabemethoden von PHP-Funktionen und Referenzvariablen?

WBOY
WBOYOriginal
2024-04-15 10:03:02669Durchsuche

In PHP bestimmt die Art und Weise, wie Parameter an eine Funktion übergeben werden, wie die Funktion auf Variablen zugreift. Die Übergabe als Wert erstellt eine Kopie der Variablen, während die Übergabe als Referenz direkt auf die ursprüngliche Variable wirkt. PHP 8 führte Referenztyphinweise ein, die es ermöglichen, per Referenz übergebene Parameter explizit anzugeben. Die Wertübergabe eignet sich für Funktionen, die den Originalwert nicht ändern, während die Referenzübergabe für Funktionen geeignet ist, die den Originalwert ändern müssen.

PHP 函数的参数传递方式与引用变量之间的关系?

Die Beziehung zwischen der Parameterübergabemethode von PHP-Funktionen und Referenzvariablen

In PHP bestimmt die Parameterübergabemethode einer Funktion, wie die Funktion auf die an sie übergebenen Variablen zugreift. Es gibt zwei Hauptmethoden zum Übergeben von Parametern: Übergabe als Wert und Übergabe als Referenz.

Wertübergabe

Wenn eine Variable als Wert an eine Funktion übergeben wird, wird eine Kopie der Variablen erstellt und an die Funktion übergeben. Dies bedeutet, dass die Funktion eine Kopie der Variablen bearbeitet und alle an der Kopie vorgenommenen Änderungen keine Auswirkungen auf die Originalvariable haben.

function add_one($num) {
  $num++; // 对副本进行更改
}

$x = 10;
add_one($x); // 传递变量副本
echo $x; // 输出 10(原始变量保持不变)

Übergabe per Referenz

Wenn eine Variable als Übergabe per Referenz an eine Funktion übergeben wird, arbeitet die Funktion direkt mit der Originalvariablen. Alle an den Variablen in der Funktion vorgenommenen Änderungen werden in den Originalvariablen widergespiegelt.

function add_one(&$num) {
  $num++; // 对原始变量进行更改
}

$x = 10;
add_one($x); // 传递变量引用
echo $x; // 输出 11(原始变量被修改了)

Im obigen Beispiel übergibt die Funktion add_one() ihren Parameter $num als Referenz. Wenn die Funktion $num erhöht, ändert sie direkt die ursprüngliche Variable $x. add_one() 函数通过引用传递其参数 $num。当函数将 $num 递增时,它直接修改了原始变量 $x

引用变量的类型提示

PHP 8 引入了引用类型提示,允许明确指定要按引用传递的函数参数。使用 & 前缀表示该参数应按引用传递。

function add_one(int &$num) {
  $num++; 
}

现在,将 $num 传递给 add_one() 函数时,它必须是按引用传递的。如果不按引用传递,则会出现错误。

实战案例

以下是对 按值传递按引用传递 的实战案例:

按值传递:

  • 数组排序或修剪函数,例如 sort()trim()
Typhinweise für Referenzvariablen

PHP 8 führte Referenztyphinweise ein, die es ermöglichen, Funktionsparameter, die per Referenz übergeben werden, explizit anzugeben. Die Verwendung des Präfixes & gibt an, dass der Parameter als Referenz übergeben werden soll.

rrreee
    Wenn nun $num an die Funktion add_one() übergeben wird, muss es als Referenz übergeben werden. Wenn Sie keine Referenz übergeben, erhalten Sie eine Fehlermeldung.
Praktische Fälle🎜🎜🎜Das Folgende sind praktische Fälle für Übergabe nach Wert und Übergabe nach Referenz: 🎜🎜🎜Übergabe nach Wert: 🎜🎜🎜🎜Array-Sortierung oder Trimmfunktionen wie sort() oder trim() ändern nicht das ursprüngliche Array oder die ursprüngliche Zeichenfolge. 🎜🎜🎜🎜Übergabe als Referenz: 🎜🎜🎜🎜Funktion, die den Inhalt eines Datenbankeintrags oder Dateisystems aktualisiert und eine direkte Manipulation der Originalvariablen erfordert. 🎜🎜

Das obige ist der detaillierte Inhalt vonWelche Beziehung besteht zwischen Parameterübergabemethoden von PHP-Funktionen und Referenzvariablen?. 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