700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 在foreach循环的结果能帮解释下输出的结果原理是什么 – PHP基础 – 前端 工时记录源码php

在foreach循环的结果能帮解释下输出的结果原理是什么 – PHP基础 – 前端 工时记录源码php

时间:2021-03-21 20:04:28

相关推荐

在foreach循环的结果能帮解释下输出的结果原理是什么 – PHP基础 – 前端 工时记录源码php

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

代码如下:

$arr = array(‘one’,’two’,’three’);

foreach ($arr as &$value){ echo ‘Value:’.$value.’

‘; }

foreach ($arr as $value){ echo ‘Value:’.$value.’

‘; }

?>

输出结果:

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。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。