$arr = array('1','2','3');
foreach($arr as $key=>&$value){}
foreach($arr as $key=>$value){}
var_dump($arr);
输出的结果居然是:
array(
0 => string '1'
1 => string '2'
2 => &string '2'
)
在foreach($arr as $key=>&$value) 数组遍历到最后,引用关系并没有断开,这时等同于 $value与 $arr 的最后一个单元即 $arr[2] 引用。 再到 foreach($arr as $k=>$value),$value的值一直随数组单元的值变,由于引用关系没有断开,$arr[2] 的值也跟着变化。一直到$arr遍历完,这时$value的值为2,所以$arr[2]值也为2。