While和if语句的求值不正确


While and if statements not evaluating correctly

EDIT:这段代码现在工作正常,我只是在有人发现自己处于我的情况时才留下它。谢谢

我的代码遇到了一个非常奇怪的情况。我有以下内容:

$m = 0; $star = ""; $star2 = "";
while($star == "")
{
   //some stuff
   if(m1 == 0) { break; }           
   $m1 -= 1;
}

出于某种疯狂的原因,当我调试此代码时,它只运行while循环一次(尽管$star仍然等于"",然后到达if并中断。我尝试过不同的方法,但都无济于事。有人知道为什么会发生这种事吗?

m1之前没有$,所以PHP会假设它是一个文字字符串"m1",并抛出一个通知错误然后将m1'与0进行比较,这是真的,并且循环中断。

您在示例中也没有初始化$m1,所以即使使用$m1,它仍然会中断。

确保你打开了所有的PHP错误和警告,它们对这样的事情很有帮助!

我想你是这行的一个拼写错误

$star2 = ""

m1被视为空字符串,因为没有具有该名称的常量。然后它被转换成一个整数,给出0,当然它等于0。因此,您的循环在第一次迭代中退出。

也许你在m1前面忘了一个$