PHP 函數中的變數傳遞方式:值傳遞:函數接收到變數值的副本,對副本的修改不會影響原始變數。引用傳遞:透過使用 & 符號,可以傳引用,函數可以直接修改原始變數的值。
PHP 函數與變數參考
在PHP 中,當變數作為函數參數傳遞時,需要了解如何處理變數引用。變數引用分為兩種類型:值傳遞和引用傳遞。
值傳遞
預設情況下,PHP 使用值傳遞,這表示函數將接收變數值的一個副本。對該副本的任何修改都不會影響原始變數的值。
function test1($a) { $a += 10; // 修改副本的值 } $a = 10; test1($a); echo $a; // 输出 10,原始值不受影响
引用傳遞
透過使用 & 符號傳遞變數引用,可以實現引用傳遞。這將允許函數直接修改原始變數的值。
function test2(&$a) { $a += 10; // 修改原始变量的值 } $a = 10; test2($a); echo $a; // 输出 20,原始值被修改
實戰案例
考慮一個函數swap()
,用來交換兩個變數的值:
function swapByValue($a, $b) { // 值传递,交换副本的值 $temp = $a; $a = $b; $b = $temp; } function swapByReference(&$a, &$b) { // 引用传递,直接交换原始变量的值 list($a, $b) = [$b, $a]; } $x = 10; $y = 20; swapByValue($x, $y); echo "x = $x, y = $y\n"; // x = 10, y = 20 swapByReference($x, $y); echo "x = $x, y = $y\n"; // x = 20, y = 10
在第一個例子中,使用值傳遞進行交換不起作用,因為修改副本的值不會影響原始變數。而在第二個例子中,使用引用傳遞實作交換,從而成功修改了原始變數的值。
以上是PHP 函數如何處理變數引用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!