为了账号安全,请及时绑定邮箱和手机立即绑定

这道经典PHP面试题有点不懂

这道经典PHP面试题有点不懂

qq_笑_17 2018-08-02 17:09:00
<?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。


查看完整回答
反对 回复 2018-08-05
  • 2 回答
  • 0 关注
  • 902 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信