Heim  >  Artikel  >  Backend-Entwicklung  >  Wie werden PHP-Funktionsparameter übergeben?

Wie werden PHP-Funktionsparameter übergeben?

WBOY
WBOYOriginal
2024-04-10 09:36:01955Durchsuche

Es gibt zwei Möglichkeiten, PHP-Funktionsparameter zu übergeben: Copy Pass: Der Standardmechanismus, die Funktion erhält eine Kopie des Parameterwerts und Änderungen wirken sich nicht auf die ursprüngliche Variable aus. Referenzdurchlauf: Die Funktion erhält einen Verweis auf die Originalvariable und Änderungen wirken sich direkt auf die Originalvariable aus.

PHP 函数参数是如何传递的

PHP-Funktionsparameter-Übergabemechanismus

In PHP gibt es beim Übergeben von Parametern an eine Funktion zwei Übertragungsmechanismen:

  • Copy Pass: Die Funktion empfängt den Parameterwert Copy, Änderungen an der Kopie hat keinen Einfluss auf die ursprüngliche Variable. Dies ist der Standardmechanismus zur Parameterübergabe in PHP.
  • Referenzpass: Die Funktion erhält einen Verweis auf die Originalvariable, und eine Änderung wirkt sich auf die Originalvariable aus.

Copy Pass

Funktionsparameter übernehmen standardmäßig den Wertübergabemechanismus, d. h. eine Kopie des Parameterwerts wird innerhalb der Funktion erstellt. Alle Änderungen an der Kopie wirken sich nur auf Variablen innerhalb des Funktionsumfangs aus, nicht auf die ursprünglichen Variablen außerhalb der Funktion.

function add($a, $b) {
  $a = $a + $b; // 只修改函数内部的 $a 副本
}

$x = 1;
$y = 2;
add($x, $y); // 传值到函数
echo $x; // 仍为 1,未受函数内更改的影响

Referenzpass

Durch Hinzufügen des &-Symbols vor dem Parameter kann der Referenzpassmechanismus implementiert werden. Auf diese Weise ist die interne Operation der Funktion keine Kopie des Werts mehr, sondern ändert direkt die ursprüngliche Variable.

function add_ref(&$a, &$b) {
  $a = $a + $b; // 直接修改原变量
}

$x = 1;
$y = 2;
add_ref($x, $y); // 传引用到函数
echo $x; // 现在为 3,因函数内修改了原变量

Praktischer Fall:

Ein häufiges Beispiel ist die Paging-Funktion von Tabellendaten. Wir müssen Parameter wie die aktuelle Seitennummer und die Anzahl der Datensätze pro Seite an die Paging-Funktion übergeben. Wenn der Wertübergabemechanismus verwendet wird, kann die Paging-Funktion nur mit Kopien von Parametern arbeiten und keine Einstellungen wie Offsets und Einschränkungen in Datenbankabfrageanweisungen ändern. Daher sollte in diesem Fall der Pass-by-Reference-Mechanismus verwendet werden, um sicherzustellen, dass die Paging-Funktion die ursprünglichen Parameter ändern kann.

function paginate($page_num, $per_page) {
  global $offset, $limit; // 全局变量
  $offset = ($page_num - 1) * $per_page;
  $limit = $per_page;
}

// ... 获取 $page_num 和 $per_page 的值 ...
paginate($page_num, $per_page); // 传引用修改全局变量

Das obige ist der detaillierte Inhalt vonWie werden PHP-Funktionsparameter ü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