首页 > 后端开发 > php教程 > PHP中的&传值引用的问题,在foreach循环的结果能帮解释下输出的结果原理是什么? c# foreach javascript foreach c foreach

PHP中的&传值引用的问题,在foreach循环的结果能帮解释下输出的结果原理是什么? c# foreach javascript foreach c foreach

WBOY
发布: 2016-07-29 08:52:58
原创
939 人浏览过
PHP中的&传值引用的问题,在foreach循环的结果能帮解释下输出的结果原理是什么? <br>代码如下: <br><?php <br />$arr = array('one','two','three'); <br>foreach ($arr as &$value){ echo 'Value:'.$value.'<br>'; } <br>foreach ($arr as $value){ echo 'Value:'.$value.'<br>'; } <br>?><br>输出结果:<br> Value:one<br> Value:two <br> Value:three <br> Value:one <br> Value:two <br> Value:two
登录后复制

<br>第一次带&的foreach并没有改变数组的内容。。<br>而是最后一次循环$value引用了数组的最后一个项 (可以测试一下,在第一次循环结束后unset($value),第二次循环的结果就不会有变化),<br>在你第二个foreach也是使用的$value变量,这才造成了怪异的问题(可以换个变量,比如$val,输出的数组就不会有变化)。<br>第二个foreach是赋值给$value,但是这时的$value是引用的数组的最后一个值,<br>所以<br>第一次循环把one赋值给了最后一个值,<br>第二次把two赋值给最后一个,<br>第三次也就是最后一个已经在第二次循环被赋值为two,所以仍然是two。
登录后复制

以上就介绍了PHP中的&传值引用的问题,在foreach循环的结果能帮解释下输出的结果原理是什么?,包括了foreach方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板