PHP循环引用会遇到的坑
PHP循环引用会遇到的坑
今天遇到这样一个问题:
如果foreach循环一个数组,引用去对它的元素做一些操作,会有什么问题吗?
比如 [1, 2, 3],foreach循环的时候,引用给每个元素 * 2,再去foreach输出,结果会是怎么样的?
先上代码,你可以先猜下会输出什么哦:
<?php
$arr = [1, 2, 3];
foreach ($arr as &$v) {
echo $v * 2;
echo "<br>";
}
var_dump($arr);
foreach ($arr as $v) {
echo $v * 2;
echo "<br>";
}
var_dump($arr);
有没有和我一样以为两次输出都是2 4 6的?事实上,结果如下:
2
4
6
array(3) { [0]=> int(1) [1]=> int(2) [2]=> &int(3) }
2
4
4
array(3) { [0]=> int(1) [1]=> int(2) [2]=> &int(2) }
惊不惊喜意不意外?
版权声明:本文为sunshineliulu原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。