PHP的foreach语句使用引用变量的问题
时间:2010-09-19 来源:edwardlost
今天在执行一个PHP程序的时候遇到一个诡异的问题:将数组print_r出来的数据是正确的,但使用foreach遍历数组时,倒数第2条记录的内容被改成了倒数第3条的,把foreach中的其它无关语句删除了也还是同样问题,foreach如下:
print_r($users_all); //数据是正确的
foreach ( $users_all as $k => $u ) {//其中一条内容被篡改成了另外一条
printf("%d - %s, tid:%d, uid:%d\n", $k, $u['section'], $u['tid'], $u['uid']);
}
这个诡异的问题一时让我摸不着头脑,我只能往前查看代码是否有一些可疑的地方,修改一些地方并加入了一些调试语句,竟莫名其妙的就正常了,经过一番分析总算找到了原因:在多个采用引用赋值的foreach内使用相同的变量名!
相关阅读 更多 +