php foreach 遍历细节探讨

Posted 白超华

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php foreach 遍历细节探讨相关的知识,希望对你有一定的参考价值。

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

输出结果为:

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

见演示

 

 输出结果为:

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

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

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

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

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

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

 

 

 

  

 

以上是关于php foreach 遍历细节探讨的主要内容,如果未能解决你的问题,请参考以下文章

PHP 数组遍历方法大全(foreach,list,each)

PHP中如何使用foreach结构遍历数组?

PHP 数组遍历 foreach 语法结构

php foreach数组问题

php foreach 修改数组不生效?

深入解析php中的foreach问题