PHP對陣列兩次foreach的使用陷阱

2021-09-25 02:19:04 字數 728 閱讀 8368

1. 兩次迴圈如果不實用引用列印結果沒有任何問題

$array = ['a','b','c'];

foreach ($array as $value){}

foreach ($array as $value){}

var_dump("", $array);

//執行結果

array(3)

2. 當第一次迴圈使用引用後會出現如下bug

**如下:

$array = ['a','b','c'];

foreach ($array as &$value){}

foreach ($array as $value){}

var_dump("", $array);

執行結果:

array(3)
分析原因:

從官網的資訊來看,foreach迴圈時,是通過移動陣列內部指標來實現的。

大家可以通過在第二個陣列中列印array來觀察陣列資料的變化,

通過下圖可以跟直觀的看到迴圈流程。

對陣列兩次foreach的使用陷阱

對陣列兩次foreach的使用陷阱 對同乙個陣列兩次foreach備註 這個問題是做小論壇的時候碰見的 如果單純的對乙個陣列兩次foreach是沒什麼問題的 輸出 如果在第一次foreach的時候,加了引用呢?輸出 第二次的結果是 a b b,並不是陣列的值 也就是說這種情況下,foreach迴圈最...

php中foreach對陣列指標的影響及原因

問題描述 遍歷陣列時,改變了陣列的值,陣列遍歷完成後,陣列的指標指向了第二個元素,當發生這種情況時,會對後續通過指標遍歷陣列產生影響。arrd array 0 a 1 b 2 c echo key arrd foreach arrd as intk val echo key arrd 輸出結果如下 ...

PHP 陣列 foreach用法

foreach用於陣列 foreach僅能用於陣列,每次迴圈中,當前單元的鍵名也會在每次迴圈中被賦給變數 key。當前單元的值被賦給 value 並且陣列內部的指標向前移一步。有兩種語法 foreach array expression as value statement foreach arra...