编辑:此代码现在可以正常工作,我只是留下它以防有人发现自己处于我的情况。感谢。
我的代码面临一个非常奇怪的情况。我有以下内容:
$m = 0; $star = ""; $star2 = "";
while($star == "")
{
//some stuff
if(m1 == 0) { break; }
$m1 -= 1;
}
出于某些疯狂的原因,当我调试此代码时,它只运行一次while循环(即使$star
仍然等于""
然后到达if
并打破。
我尝试了不同的方法无济于事。有谁知道为什么会这样?
答案 0 :(得分:1)
我猜你在这一行中是一个错字
$star2 = ""
答案 1 :(得分:1)
在m1之前没有$,因此PHP会假设它是一个文字字符串'm1'并抛出通知错误。然后将“m1”与0进行比较,这是正确的,并且您的循环会中断。
你的例子中还没有初始化$ m1,所以即使你使用$ m1,它仍然会破坏。
确保您已启用所有PHP错误和警告,它们对此类内容非常有帮助!
答案 2 :(得分:0)
m1
被视为一个裸字符串,因为该名称没有常量。然后它被转换为整数,给出0
,当然等于0
。因此,你的循环在第一次迭代中退出。
也许您忘记了$
前面的m1
?