在下面我將嘗試精確解釋迭代在不同情況下的工作原理。 我不知道爲什麼 將元素添加到數組迭代在foreach語句中php
$arr=[1,2,3];
$count=0;
foreach ($arr as $value){ \\
echo "$value\n";
if ($count++<10) $arr[]=$value+1; \\add new element
}
print_r($arr);
結果
1
2
3
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 2
[4] => 3
[5] => 4
)
而
$arr=[1,2,3];
$count=0;
foreach ($arr as &$value){ \\reference elemnt
echo "$value\n";
if ($count++<10) $arr[]=$value+1;
}
print_r($arr);
結果
1
2
3
2
3
4
3
4
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 2
[4] => 3
[5] => 4
[6] => 3
[7] => 4
)
或更好的問題是什麼的foreach機制在PHP 感謝
請問任何人都可以告訴我什麼是在引擎蓋下運行這些代碼。 – Bagheri
@Bagheri PHP是開源的,用C編寫。如果你認爲你可以處理它,那麼你可以[查看源代碼](https://github.com/php/php-src)。我無法幫助你。 – apokryfos