我有一段代码没有像我预期的那样工作。
代码大致如下:
foreach ($arrayOfIds as $iterId)
{
if ($iterId === $unchangingId)
{
// ...
}
}
问题在于,无论ID是否匹配,它都会进入if语句。
然后我注意到我的if语句被错误地声明了,实际上看起来像这样:
if ($iterId === $unchangingId);
{
// ...
}
那个单一的半冒号给了我很多悲伤。
现在,我知道如何/为什么我没有得到编译器或运行时错误,因为 if($ iterId === $ unchangingId);
但是我从来不知道你可以将代码放在2个花括号中,没有别的东西。
我想更多地了解这个以及它的用途,如果有人能详细说明,我将非常感激!
答案 0 :(得分:1)
if ($iterId === $unchangingId);
{
// ...
}
这是两个独立且不相关的结构。
if
构造可以采用以下形式:
if (expression) statement;
与单个语句一起使用时没有花括号,并且该语句不必包含任何内容,但是终止分号。所以
if ($iterId === $unchangingId);
是一个完整的,独立的东西,然后您将跟随大括号中包含的无关语句块:
{
// ...
}
没有什么特别之处,内容的处理就像花括号不在那里一样。
答案 1 :(得分:1)
在Java中,裸花括号块具有局部范围。在PHP中,它没有做任何事情。