猜猜一下PHP输出什么?$list = array();
$list [] = 'a1' ; $list [] = 'a2' ; $list [] = 'a3' ; foreach ( $list as & $r ) { //$r['vv'] = 'a'; } //unset($r); foreach ( $list as $r ) { echo $r ; } |
答案是:a1a2a2
郁闷啊。数组重新查找时,数组的最后两项就会指向同一个值。
官方的foreach说明 http://www.php.net/manual/zh/control-structures.foreach.php
解决办法是,在使用foreach($list as &$r){} 后unset($r) 就好了。但还是不明白为什么是后两个值会相同呢?
欢迎转载,转载请注明:转载自[ http://www.cnblogs.com/zjfree/ ]
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步