<?php //第2题: $arr = [1,2,3]; foreach($arr as &$v) { //nothing todo. } foreach($arr as $v) { //nothing todo. } var_export($arr); //output:array(0=>1,1=>2,2=>2),你的答案对了吗?为什么?>
2 回答
心有法竹
TA贡献1866条经验 获得超5个赞
原因就是在第一次遍历时用的是&val
引用赋值,而在foreach
完之后,这个$val
依然存在,是$arr[2]
元素的引用
当进入到第二次遍历时,在遍历到第一个元素时$val
被赋值为1
,相当于
$arr[2] = 1;
遍历到第二个元素时
$arr[2] = 2;
遍历到第三个元素时
$arr[2] = $arr[2]
所以最后的结果就成了1,2,2。
添加回答
举报
0/150
提交
取消