我有以下代码:
while(1){
$r = rand(0,9);
echo "running...";
if($current_item >= $array[$r]['limiter']){
$foo = $foo;
$bar = $bar;
mysql_query("INSERT INTO db (type, hp) VALUES ('$foo', '$bar')");
echo "done.";
break 1;
}
}
当我运行它时,我会得到"running..."
一次或几次回显(这是预期的)并"done."
回显一次,正如预期的那样。
然而,两个条目将被插入到数据库中,其中包含暗示整个 if 语句运行了两次的不同信息。
有没有人遇到过这个?有没有我在这里看不到的事情发生?任何想法如何解决这一问题?
我对更新也有类似的问题,它们也更新了两次,并且与循环完全分开。
编辑:只是为了澄清,
$current_item
确实发生了变化,但在循环的上下文中它是恒定的。$array[$r]['limiter']
引用一个多维数组。这些都不应该影响循环本身,它只是一个必须满足的条件才能做任何事情。