1.foreach是一个不断赋值的过程;
2.每进行一次循环,当前数组元素的值就会被赋值给 $value 变量(数组指针会逐一地移动);
3.&为引用符,表示直接对数组中的元素进行更改;
不加&表示是复制原数组中的值再进行处理;
4.&会保留最后一个元素的值;
eg.
第一次foreach结束后,value的值为8(可理解为value指向data【3】),所以第二次循环就变为:
2=>a[3],输出2;
4=>a[3],输出4;
6=>a[3],输出6;
输出a[3],输出6;
所以第二次的结果为2 4 6 6;
解决方案:
1.unset()销毁value;
2.第二次循环时不使用上次循环所用的变量;
PHP foreach循环中引用问题
最新推荐文章于 2021-03-21 09:21:01 发布