我只花了2个小时来寻找一个显然来自&value的foreach迭代的错误。我有一个多维数组,当运行此数组时:
foreach($arrayOfJsonMods as &$item){
//TODO memcached votes
}
并且PHP返回了一个具有相同元素计数的数组,但是返回了最后一条记录为DUPLICATE的数组。关于这种结构,我有什么不了解的地方吗?
我在另一台机器上运行了代码,结果是相同的。
最佳答案
我猜想您是在这里重用 &$item
,并且正在绊倒一种行为,该行为被报告为bug千次,但是是引用的正确行为,这就是manual advises的原因:
foreach($arrayOfJsonMods as &$item)
{
//TODO memcached votes
}
unset($item);
参见https://bugs.php.net/bug.php?id=29992
关于php - 为什么php通过引用迭代会返回重复的最后一条记录?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7158741/