为什么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

回到顶部