while和if语句没有正确评估

时间:2012-03-21 09:21:35

标签: php loops

编辑:此代码现在可以正常工作,我只是留下它以防有人发现自己处于我的情况。感谢。

我的代码面临一个非常奇怪的情况。我有以下内容:

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

出于某些疯狂的原因,当我调试此代码时,它只运行一次while循环(即使$star仍然等于""然后到达if并打破。 我尝试了不同的方法无济于事。有谁知道为什么会这样?

3 个答案:

答案 0 :(得分:1)

我猜你在这一行中是一个错字

$star2 = ""

答案 1 :(得分:1)

在m1之前没有$,因此PHP会假设它是一个文字字符串'm1'并抛出通知错误。然后将“m1”与0进行比较,这是正确的,并且您的循环会中断。

你的例子中还没有初始化$ m1,所以即使你使用$ m1,它仍然会破坏。

确保您已启用所有PHP错误和警告,它们对此类内容非常有帮助!

答案 2 :(得分:0)

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

也许您忘记了$前面的m1