PHP 大括号换行

本页会把每个 PHP 左大括号放在独立的一行上,并让右大括号与之对齐,这种风格通常被称为 Allman 风格。粘贴大括号位于行尾或全部挤在一行上的代码片段,生成的代码块就会纵向对齐。

如何让大括号换行

  1. 1

    粘贴代码片段

    把代码添加到 PHP 代码框中,大括号保持当前的位置即可。

  2. 2

    选择缩进

    为每个代码块的内容选择 2 或 4 个空格。

  3. 3

    继续

    打开结果页面,查看重新格式化后的代码。

  4. 4

    复制代码

    确认代码块对齐,然后复制。

本工具中的大括号位置

本工具只有一种布局,没有相应的选项:每个 { 都单独占一行,每个 } 也单独占一行,大括号内的内容缩进一级。因此 else 和 catch 会在右大括号之后的新行上开始。

大括号位于行尾的输入:

<?php if ($age >= 18) { echo "adult"; } else { echo "minor"; }

结果:

<?php if ($age >= 18)
{
    echo "adult";
}
else
{
    echo "minor";
}

应该使用哪种风格

常见的 PHP 编码规范通常把类和方法的左大括号放在单独一行,而 if 和 foreach 等控制结构的大括号往往与语句保持在同一行。本工具在所有地方都应用换行布局。这使得输出适合类和方法,而对其他结构来说则是一种刻意的选择。如果你的项目遵循混合风格,就需要手动把控制结构的大括号改回同一行。

实用说明

  • 嵌套的代码块会继续向内缩进,因此方法内部、类里面的循环会有三级深度。
  • 右大括号之后会换行,所以 } 和其后的代码永远不会在同一行。
  • 注释以及 heredoc 之类类似字符串的文本中的大括号,同样会被当作真正的大括号计数,从而可能改变布局。
  • 没有可以让左大括号保留在语句行上的设置。本页无法生成这种风格。

类的示例

输入:

<?php class User{private $name;public function getName(){return $this->name;}}

使用 4 个空格的结果:

<?php class User
{
    private $name;
    public function getName()
    {
        return $this->name;
    }
}

类的大括号和方法的大括号各自单独占一行,方法体比上面的属性多缩进一级。右大括号与打开它的那一行对齐,因此你可以一眼看出代码块的对应关系。

与你自己的风格结合

如果只需要修改部分代码块,就只粘贴这些代码块。每个代码块都在其自身的右大括号处结束,因此通过复制粘贴很容易把结果合并回文件。不要粘贴从代码块中间开始或结束的片段,因为缩进深度从零开始,无法与周围的文件匹配。

常见问题

不能。本工具总是把左大括号移到它自己的一行。

类和方法通常使用这种风格。而 if 和 foreach 等控制结构常常把大括号放在同一行,本工具则不会这样做。

每个右大括号都会结束它所在的行,因此跟在它后面的内容会从下一行开始。

它对任何花括号代码块的处理方式相同,因此这些代码块也会被缩进。请查看输出,确认 case 标签看起来正确。

相关工具

此工具还提供其他语言版本

使用指南与应用场景