为什么php通过引用迭代会返回重复的最后一条记录?
我只花了2个小时来寻找一个显然来自&value的foreach迭代的错误。我有一个多维数组,当运行此数组时:
foreach($arrayOfJsonMods as &$item){ //TODO memcached votes
}
并且PHP返回了一个具有相同元素计数的数组,但是返回了最后一条记录为DUPLICATE的数组。关于这种结构,我是否不了解?
我在另一台机器上运行了代码,结果是一样的。
回答:
我猜想您在这里
&$item
,并且正在绊倒一种行为,该行为被报告为bug千次,但是是引用的正确行为,因此这本手册建议:
即使在foreach循环之后,仍保留$ value的引用和最后一个数组元素。建议通过unset()销毁它。
foreach($arrayOfJsonMods as &$item){
//TODO memcached votes
}
unset($item);
以上是 为什么php通过引用迭代会返回重复的最后一条记录? 的全部内容, 来源链接: utcz.com/qa/404816.html