【问题标题】:What's the purpose of separate curly brackets in PHP [duplicate]PHP中单独大括号的目的是什么[重复]
【发布时间】:2015-09-17 09:56:38
【问题描述】:

这是一个解析器错误,还是像这样使用大括号有什么用处?

$x = 1;

{
    $x++;
}

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

【问题讨论】:

  • 它定义了一个代码块。如果你在它上面放一个if ($condition),如果条件为真,整个块将被执行,而不是只执行第一个表达式。

标签: php


【解决方案1】:

没有任何隐藏的含义。它更多的是关于可读性。

查看manual:

任何 PHP 脚本都是由一系列语句构成的。一个声明可以 是赋值、函数调用、循环、条件语句或 甚至是一个什么都不做的语句(一个空语句)。声明 通常以分号结尾。此外,语句可以分组 通过将一组语句封装成一个语句组 花括号。语句组本身也是一个语句。

【讨论】:

    【解决方案2】:

    其目的是将操作分组,以便在只允许一项操作的地方使用。

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

    【讨论】:

      【解决方案3】:

      语句不能像表达式一样组合,你总是可以将一系列语句放在一个语句可以去的任何地方,方法是将它们括在一组花括号中。

      • 大括号用于标记类、函数(OOP中的方法 术语)、循环和控制结构体。
      • 它们也可以在字符串中用于将变量与 周围的文字。

      【讨论】:

        【解决方案4】:
        {
        $x++;
        }
        

        就像

        {$x++;}
        

        就像

        $x++;
        

        它们表示代码块。

        你也可以这样考虑:

        if (true) {
          $x++;
        }
        

        该代码具有有效的语法,并且在没有“if”条件的情况下它的行为完全一致。您可以随心所欲地使用“有效”和无用的代码对代码多收费用。

        【讨论】:

          【解决方案5】:

          大括号可用于将范围更改为本地范围。因此,如果您在括号中定义一个变量,它将在括号外不可用

          【讨论】:

          • 只有函数和方法有自己的本地范围。
          • 这是作为答案发布的,但它不会尝试回答问题。它可能应该是编辑、评论、另一个问题或完全删除。
          猜你喜欢
          • 1970-01-01
          • 2013-12-21
          • 2018-10-15
          • 1970-01-01
          • 1970-01-01
          • 2014-10-24
          • 2011-12-02
          • 2011-09-18
          • 2011-01-17
          相关资源
          最近更新 更多