如果我对一个数组进行两次迭代,一次是引用,然后是值,如果我对每个循环使用相同的变量名,PHP将覆盖数组中的最后一个值。通过一个例子最好地说明了这一点:
$array = range(1,5);
foreach($array as &$element)
{
$element *= 2;
}
print_r($array);
foreach($array as $element) { }
print_r($array);
数组([0]=>2[1]=>4[2]=>6[3]=>8
[4] =>10
数组([0]=>2[1]=>4[2]=>6[3]=>8
[4] =>8
)
$element
,所以我猜这和
$元素
在第一个循环结束后仍在作用域和引用中。