【PHP】php foreach 遍历细节探讨

  • foreach 也是正常的语法循环结构,可以有 break 和 continue 等操作
  • 遍历过程中值变量传递默认是值传递

输出结果为:

  • 遍历过程中值变量可以认为设定为引用传递:foreach($数组名 as $key => & $value){...}

见演示

 输出结果为:

这里需要注意的是:值变量$value可以使用引用传递,但是$key不可以使用引用传递,如果使用则会报错。

  • foreach 默认是原数组上进行遍历,但是如果在遍历过程中进行了某种修改或某种指针操作,则会复制数组后在复制后的数组继续遍历循环(原数组保持不变)

以下演示foreach默认是在原数组上进行遍历的效果:

可见,此时数组的指针因为遍历中途退出,就停在了第三项。

然后继续演示在某些情况下(修改或指针错作),不是在原数组上进行遍历

  • foreach中如果值变量是引用传递,则无论如何都是在修改后的数组上进行

  

原文地址:https://www.cnblogs.com/bc8web/p/5609871.html