博客
关于我
[PHP] foreach循环的引用赋值可能导致的问题
阅读量:660 次
发布时间:2019-03-15

本文共 497 字,大约阅读时间需要 1 分钟。

foreach($arr as &$value)

1.引用赋值符号&,是每次循环的时候,把当前元素变成地址,$value变量就是对应元素的地址,循环结束$value是一个指向最后一个元素的地址
2.当我下次循环,使用了这种方式foreach($arr as $value) ,会出现问题;foreach会把每个元素赋值给后面的$value变量
3.因此,逻辑就变成了,把每个元素修改给原数组的最后一个元素,最后一次循环会一直是前一次的结果
4.最好不用引用传递,用这种形式$arr[$key]改原数组,或者在下次循环时候换一个变量名

$nums=array(1,2,3);foreach($nums as &$v){        var_dump($v);}/*int(1)int(2)int(3)*/var_dump($nums);/*array(3) {  [0]=>  int(1)  [1]=>  int(2)  [2]=>  &int(3)}*/foreach($nums as $v){        var_dump($v);}/*int(1)int(2)int(2)*/

  

转载地址:http://emnmz.baihongyu.com/

你可能感兴趣的文章
mysql之子查询
查看>>
MySQL之字符串函数
查看>>
mysql之常见函数
查看>>
Mysql之性能优化--索引的使用
查看>>
mysql之旅【第一篇】
查看>>
Mysql之索引选择及优化
查看>>
mysql之联合查询UNION
查看>>
mysql之连接查询,多表连接
查看>>
mysql乐观锁总结和实践 - 青葱岁月 - ITeye博客
查看>>
mysql也能注册到eureka_SpringCloud如何向Eureka中进行注册微服务-百度经验
查看>>
mysql乱码
查看>>
Mysql事务。开启事务、脏读、不可重复读、幻读、隔离级别
查看>>
MySQL事务与锁详解
查看>>
MySQL事务原理以及MVCC详解
查看>>
MySQL事务及其特性与锁机制
查看>>
mysql事务理解
查看>>
MySQL事务详解结合MVCC机制的理解
查看>>
MySQL事务隔离级别:读未提交、读已提交、可重复读和串行
查看>>
MySQL事务隔离级别:读未提交、读已提交、可重复读和串行
查看>>
webpack css文件处理
查看>>