sunshineliulu

今天遇到这样一个问题:

如果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) }

惊不惊喜意不意外?

分类:

技术点:

相关文章:

  • 2021-08-29
  • 2022-12-23
  • 2022-02-23
  • 2021-11-28
  • 2022-01-29
  • 2021-05-30
  • 2021-07-14
  • 2021-07-23
猜你喜欢
  • 2021-06-21
  • 2022-12-23
  • 2022-01-23
  • 2022-03-06
  • 2021-10-20
  • 2021-11-07
  • 2021-11-21
相关资源
相似解决方案