在线时间:8:00-16:00
132-9538-2358
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
PHP中的&传值引用的问题,在foreach循环的结果能帮解释下输出的结果原理是什么? 代码如下: <?php $arr = array('one','two','three'); foreach ($arr as &$value){ echo 'Value:'.$value.'<br />'; } foreach ($arr as $value){ echo 'Value:'.$value.'<br />'; } ?>输出结果: Value:one Value:two Value:three Value:one Value:two Value:two
第一次带&的foreach并没有改变数组的内容。。而是最后一次循环$value引用了数组的最后一个项 (可以测试一下,在第一次循环结束后unset($value),第二次循环的结果就不会有变化),在你第二个foreach也是使用的$value变量,这才造成了怪异的问题(可以换个变量,比如$val,输出的数组就不会有变化)。第二个foreach是赋值给$value,但是这时的$value是引用的数组的最后一个值,所以第一次循环把one赋值给了最后一个值,第二次把two赋值给最后一个,第三次也就是最后一个已经在第二次循环被赋值为two,所以仍然是two。
评论
2022-08-15
2022-11-06
2022-08-16
2022-08-18
2022-08-17
librespeed/speedtest: Self-hosted Speedtest for HTML5 and more. Easy setup, exam
network backend may cause Linux netfront to use freed SKBs While adding logic to
avehtari/BDA_m_demos: Bayesian Data Analysis demos for Matlab/Octave
女人怀孕后,为了有一个健康聪明的宝宝,经历各种体检、筛查。其实这些体检和筛查中的
prabhakar267/library-management-system: An automated library management system d
medfreeman/markdown-it-toc-and-anchor: markdown-it plugin to add a toc and ancho
如今正值各企业、单位的招工旺季。一则“黑话大全”的帖子也引起了网友热议。文中列举
sydney0zq/covid-19-detection: The implementation of A Weakly-supervised Framewor
Use after free in shell in Google Chrome on ChromeOS prior to 100.0.4896.88 allo
离中国最远的国家是阿根廷。从太平洋直线计算,即往东线走,北京到阿根廷的布宜诺斯艾
请发表评论