PHP中的ampersand符號(&)有不同的用途,其中一個用途是引用變量。在PHP中,變量可以通過引用傳遞,這意味著您可以更改變量的值,即使它們在不同的作用域中也可以。
使用 & 符號來傳遞變量的引用,可以防止PHP將變量復制一次。與傳遞值不同,傳遞引用時,在函數或方法中對該變量所做的更改將在函數調用結束后影響原始變量。
$a = 'hello'; $b = $a; $b = 'world'; echo $a; //輸出 hello echo $b; //輸出 world $c = 'hi'; $d = &$c; $d = 'hey'; echo $c; //輸出 hey echo $d; //輸出 hey
在上面的示例中,第一個代碼段將一個變量的值分配給另一個變量,即使更改第二個變量的值,第一個變量的值仍然保持不變。
第二個示例使用 & 符號來引用一個變量,這意味著變量 $d 是對變量 $c 的別名。任何對 $d 的更改都將影響 $c。
如果沒有使用 & 符號來引用變量,則在對變量進行任何更改時都將進行副本操作,并且不會影響原始變量。
function multiply($number) { $number *= 2; } $num = 10; multiply($num); echo $num; //輸出 10 function multiply_with_reference(&$number) { $number *= 2; } $num = 10; multiply_with_reference($num); echo $num; //輸出 20
在第一個示例中,函數 multiply 接受一個參數 $number,并將其乘以 2。然而,因為沒有傳引用,這個操作只改變本地變量 $number,不會影響調用函數的原始變量。
在第二個示例中,函數 multiply_with_reference 使用 & 符號來引用變量 $number。所以,本地變量和原始變量是同一個變量,更改 $number 將更改原始變量的值。
在PHP中,要創建對變量的引用,只需在變量名稱前加上 & 符號即可。例如:
$original = 'foo'; $reference =& $original;
在上面的示例中,變量 $reference 是對變量 $original 的引用。
總之,使用 & 符號來引用變量可以在PHP中更有效地傳遞變量,并將一個變量的更改在應用程序的多個地方中一致地反映出來。