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