PHP中单独使用花括号的目的是什么?

4
这是一个解析器是否有误或者使用花括号的方法是否有用的问题。
$x = 1;

{
    $x++;
}

据我所见,它的行为就像括号不存在一样,那么为什么它是有效的语法?

2
它定义了一段代码块。如果你在它的顶部放置一个 if ($condition),整个块将会被执行,如果 条件 是真的,而不仅仅是第一个表达式。 - Hkan
5个回答

7

没有任何含义的隐喻,这更多关乎阅读性。

请查看手册:

任何 PHP 脚本都由一系列语句构成。语句可以是一个赋值、一个函数调用、一个循环、一个条件语句,甚至是一个不执行任何操作的语句 (一个空语句)。语句通常以分号结束。此外,可以通过使用花括号将语句组合成语句组。语句组本身也是一条语句。


2

它的目的是将操作分组,以便在仅允许一个操作的地方使用。

if (cond) foo(); 等同于 if (cond) { foo(); }
foo(); 等同于 { foo(); }


2

语句不能像表达式一样组合,但您可以通过将它们括在一对大括号中,在任何语句可以放置的地方放置一系列语句。

  • 花括号用于标记类、函数(面向对象编程术语中的方法)、循环和控制结构体。
  • 它们还可以在字符串内部使用,将变量与周围文本分开。

0
{
$x++;
}

就像

{$x++;}

这就像

$x++;

它们用于表示一段代码块。

你也可以考虑这个:

if (true) {
  $x++;
}

代码具有有效的语法,如果没有“if”条件,它将完全按照预期运行。 您可以随意添加“有效”的无用代码来使您的代码超载。

-2

花括号可以用于将作用域更改为局部作用域。因此,如果您在括号中定义变量,则该变量在括号外部不可用。


4
只有函数和方法拥有自己的局部作用域。 - vp_arth
这是作为答案发布的,但它并没有试图回答问题。它可能应该是一个编辑、评论、另一个问题或完全删除。 - Saket Mittal

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接