这是一个解析器是否有误或者使用花括号的方法是否有用的问题。
据我所见,它的行为就像括号不存在一样,那么为什么它是有效的语法?
$x = 1;
{
$x++;
}
据我所见,它的行为就像括号不存在一样,那么为什么它是有效的语法?
$x = 1;
{
$x++;
}
没有任何含义的隐喻,这更多关乎阅读性。
请查看手册:
任何 PHP 脚本都由一系列语句构成。语句可以是一个赋值、一个函数调用、一个循环、一个条件语句,甚至是一个不执行任何操作的语句 (一个空语句)。语句通常以分号结束。此外,可以通过使用花括号将语句组合成语句组。语句组本身也是一条语句。
它的目的是将操作分组,以便在仅允许一个操作的地方使用。
if (cond) foo();
等同于 if (cond) { foo(); }
foo();
等同于 { foo(); }
语句不能像表达式一样组合,但您可以通过将它们括在一对大括号中,在任何语句可以放置的地方放置一系列语句。
{
$x++;
}
就像
{$x++;}
这就像
$x++;
它们用于表示一段代码块。
你也可以考虑这个:
if (true) {
$x++;
}
花括号可以用于将作用域更改为局部作用域。因此,如果您在括号中定义变量,则该变量在括号外部不可用。
if ($condition)
,整个块将会被执行,如果 条件 是真的,而不仅仅是第一个表达式。 - Hkan