首页 > 代码库 > PHP foreach引用
PHP foreach引用
PHP foreach引用
首先,上代码
$arr=[1,2,3,4,5,6]; foreach ($arr as $key => &$value) { if($value=http://www.mamicode.com/=4){>
各位认为echo的结果会是什么?你可能会很快算出结果为 ‘1,2,3,5,6’,但是,结果会有点小意外,各位不妨输出一下 结果会是‘1,2,3,5,5’。那么问题来了,为什么?
那么下面我们来解释一下:
在 $value 之前加上 & 来修改数组的元素。此方法将以引用赋值而不是拷贝一个值。
如果我们直接将第一次的结果直接输出,结果不会发生变化,会是‘1,2,3,4,5,6’;
当我们第二次foreach循环时此时第一次循环对$value最后的引用还在,所以当我们第二次用$value执行后结果会发生变化。
解决办法:1、在第一次foreach循环完成后unset($value),取消掉引用;2、在第二次循环时不用$value变量换成一个其他任意变量都可以;
$arr=[1,2,3,4,5,6]; foreach ($arr as $key => &$value) { if($value=http://www.mamicode.com/=4){>
PHP foreach引用
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。