今天在用 php 中的 foreach 循环改变原数组元素值时发现一直出不来结果,还以为代码逻辑写错了!后来发现是数组没被改变!!百度之后有以下处理方法以下是转载的内容:
翻箌PHP文档的foreach那页这样写道:
“foreach 语法结构提供了遍历数组的简单方式。foreach 仅能够应用于数组和对象如果尝试应用于其他数据类型的变量,或者未
初始化的变量将发出错误信息有两种语法:
下一次循环中将会得到下一个单元)。
第二种格式做同样的事只除了当前单元的键名也會在每次循环中被赋给变量 $key。”
那么“第一种格式遍历给定的 array_expression 数组每次循环中,当前单元的值被赋给 $value 并且数组内部的指针向前移一步(洇此下一次循环中将会得到下一个单元)”是什么意思?意思就是说用foreach来遍历数组所操作的是指定数组的一个拷贝,
而不是数组本身就像有一个克隆的你,别人对克隆的你不管怎么拳打脚踢对你也是没有影响的。