首頁 >後端開發 >php教程 >PHP 在「foreach」迴圈中按引用傳遞如何影響數組元素修改?

PHP 在「foreach」迴圈中按引用傳遞如何影響數組元素修改?

Barbara Streisand
Barbara Streisand原創
2024-12-17 12:42:25784瀏覽

How Does PHP's Pass by Reference in `foreach` Loops Affect Array Element Modification?

PHP 在foreach 中按引用傳遞

理解按引用傳遞

理解按引用傳遞

PHP 有二個變數類型:普通變數和參考變數。將一個變數的參考分配給另一個變數會建立一個引用變數。該變數成為引用變數的別名。

在Foreach 循環中按引用傳遞

在foreach 循環中,語法foreach ($a as &$v)將每個數組元素的引用傳遞給變量$v。這意味著循環內對 $v 所做的任何更改也將修改原始數組元素。

$a = array ('zero','one','two', 'three');

foreach ($a as &$v) {

}

foreach ($a as $v) {
  echo $v.PHP_EOL;
}

程式碼片段說明

  1. 在此程式碼中:
  2. 陣列$a 包含四個元素:「零」、 「一」、「二」和'三'。
  3. 第一個 foreach 迴圈遍歷每個元素,並將每個元素的參考傳遞給 $v。
  4. 此循環中未對 $v 進行任何更改,因此數組元素保持不變。
第二個foreach 循環再次迭代每個元素,但這次,一個普通變數$v 保存每個元素的值
zero
one
two
two

輸出將為:

輸出原因

在第一個foreach 循環之後,元素$ a[3]成為引用變量,因為它被 $v 引用。因此,當 $v 在後續迭代中被賦予新值時,$a[3] 也會被修改。 由於 $a[3] 現在是一個引用變量,因此在第二個 foreach 循環中更改其值會影響循環的所有其他迭代。因此,最後一次迭代打印“二”而不是“三”。

以上是PHP 在「foreach」迴圈中按引用傳遞如何影響數組元素修改?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn