PhpStorm 2021.3 Help

代码风格。PHP

使用此页面配置 PHP 文件的格式选项。当您更改这些设置时,“预览”窗格会显示这将如何影响您的代码。

设置从...

单击此链接以从出现的列表中选择当前语言默认代码样式的基础。该列表包含两个选项:

  • 语言:选择此选项可从另一种语言继承编码样式设置。从打开的列表中选择源语言。仅采用适用于当前语言的设置。所有其他设置不受影响。

  • 预定义代码样式:选择此选项以使用为特定框架定义的编码标准。从列表中选择以下框架之一:

此链接显示在特定语言代码样式页面的右上角(如果适用)。

单击重置以放弃更改并返回到初始代码样式设置集。

制表符和缩进

物品

描述

使用制表符

  • 如果选中此复选框,则使用制表符:

    • 按键Tab

    • 用于缩进

    • 用于代码重新格式化

  • 当复选框被清除时,PhpStorm 使用空格而不是制表符。

智能标签

  • 如果选中此复选框,则由代码块嵌套定义的缩进部分由制表符和(如有必要)空格组成,而由对齐定义的缩进部分仅由空格组成。

    开启智能标签的代码风格
  • 如果清除此复选框,则仅使用选项卡。这意味着适合指定制表符大小的一组空格会自动替换为制表符,这可能会导致破坏精细对齐。

    关闭智能标签的代码样式

如果选中了使用制表符复选框,则智能制表符复选框可用。

标签大小

在此字段中,指定选项卡中包含的空格数。

缩进

在此字段中,指定要为每个缩进级别插入的空格数。

继续缩进

在此字段中,指定要在数组元素之间、表达式、方法声明和方法调用中插入的空格数。

在空行上保留缩进

如果选中此复选框,PhpStorm 将在空行上保留缩进,就好像它们包含一些代码一样。

如果清除此复选框,PhpStorm 将删除制表符和空格。

在 PHP 标记中缩进代码

选中此复选框以使包含在标签中的代码相<?php>对于开始标签缩进<?php

空间

选中或清除复选框以在各种 PHP 上下文中插入、不插入或删除空格。

括号前

物品

描述

函数声明括号

如果选中,则在函数声明中的左括号之前插入一个空格。否则,不插入空格。

函数 foo ($x, $z) {}
函数 foo($x, $z) {}

函数调用括号

如果选中,则在函数调用中的左括号之前插入一个空格。否则,不插入空格。

$obj->foo ()->bar ();
$obj->foo()->bar();

匿名函数括号

如果选中,则在匿名函数声明中的左括号之前插入一个空格。否则,不插入空格。

$example = 函数 () {};
$example = 函数() {};

“如果”括号

if如果选中,则在构造中的左括号之前插入一个空格。否则,不插入空格。

如果 ($x) { 回声 $x; }
if($x) { 回声 $x; }

'for' 括号

for如果选中,则在循环中的左括号之前插入一个空格。否则,不插入空格。

对于 ($i = 0; $i < $x; $i++) { $y += $i; }
for($i = 0; $i < $x; $i++) { $y += $i; }

'while' 括号

while如果选中,则在循环中的左括号之前插入一个空格。否则,不插入空格。

while ($x != $y) { echo ($x * 2); }
while($x != $y) { echo ($x * 2); }

“切换”括号

switch如果选中,则在语句的左括号之前插入一个空格。否则,不插入空格。

switch ($i) { case 0: echo "i equals 0"; 休息; 案例1:回显“我等于1”;休息; }
switch($i) { case 0: echo "i 等于 0"; 休息; 案例1:回显“我等于1”;休息; }

'catch' 括号

catch如果选中,则在构造中的左括号之前插入一个空格。否则,不插入空格。

试试 { 得到($x);} 捕捉(异常 $e){ }
试试 { 得到($x);} 捕捉(异常 $e){ }

数组初始化括号

如果选中,则在数组声明中的左括号之前插入一个空格。否则,不插入空格。

$array = 数组 (0 => "零", 1 => "一");
$array = array(0 => "零", 1 => "一");

箭头函数括号

如果选中,则在匿名函数声明中的左括号之前插入一个空格。否则,不插入空格。

$double = fn ($x) => $x * 2;
$double = fn($x) => $x * 2;

围绕运营商

物品

描述

赋值运算符(=、+=、...)

如果选中,则在赋值表达式中的赋值运算符周围插入空格。否则,不插入空格。

$var = f($a);
$var=f($a);

逻辑运算符(&&、||)

如果选中,则在逻辑表达式中的逻辑运算符周围插入空格。否则,不插入空格。

$var = $a && $b;
$var = $a&&$b;

等式运算符 (==, =)

如果选中,则在比较表达式中的相等运算符周围插入空格。否则,不插入空格。

如果 ($a == $b) {};
如果 ($a==$b) {};

关系运算符(<、>、<=、>=)

如果选中,则在比较表达式中的关系运算符周围插入空格。否则,不插入空格。

如果 ($a > $b) {};
如果 ($a>$b) {};

位运算符(&、|、^)

如果选中,则会在按位运算符周围插入空格。否则,不插入空格。

$var += ($var ^ 0x123);
$var += ($var^0x123);

加法运算符 (+, -)

如果选中,则会在加法运算符周围插入空格。否则,不插入空格。

$var = $a + $b;
$var = $a+$b;

乘法运算符(*、/、%、**)

如果选中,则会在乘法运算符周围插入空格。否则,不插入空格。

$var = $a * $b;
$var = $a*$b;

移位运算符(<<、>>、>>>)

如果选中,则会在位移运算符周围插入空格。否则,不插入空格。

$var = $a << 1;
$var = $a<<1;

一元加法运算符 (+,-,++,--)

如果选中,则在一元加法运算符周围插入空格。否则,不插入空格。

对于 ($i = 0; $i < $x; $i ++) {}
对于 ($i = 0; $i < $x; $i++) {}

串联 (.)

如果选中,则在连接运算符周围插入空格.。否则,不插入空格。

回声“结果是”。$i;
echo "结果是".$i;

对象访问运算符 (->)

->如果选中,则会在对象访问运算符周围插入空格。否则,不插入空格。

$obj -> foo() -> bar();
$obj->foo()->bar();

空合并运算符 (??)

??如果选中,则会在空合并运算符周围插入空格。否则,不插入空格。

富()?酒吧();
foo()??bar();

声明语句中的赋值

如果选中,则在语句中的赋值运算符周围插入空格declare。否则,不插入空格。

声明(严格类型 = 1);
声明(严格类型=1);

左大括号前

物品

描述

类左大括号

如果选中,则在类名和类声明中的左大括号之间插入一个空格。否则,不插入空格。

类 Class1 { 函数 Foo() {} }
类 Class1{ 函数 Foo() {} }

仅当In class declaration的Braces placement设置为Wrapping and Braces选项卡上的End of line时,选择或清除该复选框才相关。

函数左大括号

如果选中,则在函数参数的列表右括号和函数声明中的左大括号之间插入一个空格。否则,不插入空格。

函数 foo() {}
函数 foo(){}

仅当In function declaration的Braces placement设置为Wrapping and Braces选项卡上的End of line时,选择或清除该复选框才相关。

'if' 左大括号

如果选中,则在条件表达式的右括号和语句中的左大括号之间插入一个空格if。否则,不插入空格。

如果 ($x) { 回声 $x; }
如果 ($x){ 回声 $x; }

仅当“环绕和大括号”选项卡上的“其他大括号放置”设置为“行尾”时,选择或清除该复选框才相关。

'else' 左大括号

如果选中,则在语句中的else关键字和左大括号之间插入一个空格。if-else否则,不插入空格。

如果 ($x) { 回声 $x; } 其他 { 回声 $y; }
如果 ($x) { 回声 $x; } 其他{ 回声 $y; }

仅当“环绕和大括号”选项卡上的“其他大括号放置”设置为“行尾”时,选择或清除该复选框才相关。

'for' 左大括号

for如果选中,则在条件表达式的右括号和循环中的左大括号之间插入一个空格。否则,不插入空格。

对于 ($i = 0; $i < $y; $i++) { $str = $arr[$i]; }
对于 ($i = 0; $i < $y; $i++){ $str = $arr[$i]; }

仅当“环绕和大括号”选项卡上的“其他大括号放置”设置为“行尾”时,选择或清除该复选框才相关。

'while' 左大括号

while如果选中,则在条件表达式的右括号和循环中的左大括号之间插入一个空格。否则,不插入空格。

而 ($var != $x) { $var++; }
而 ($var != $x){ $var++; }

仅当“环绕和大括号”选项卡上的“其他大括号放置”设置为“行尾”时,选择或清除该复选框才相关。

'do' 左大括号

如果选中,则在循环中的do关键字和左大括号之间插入一个空格。do-while否则,不插入空格。

做 { 回声 $var; } 而 ($var > 0);
做{回声$var;} 而 ($var > 0);

仅当“环绕和大括号”选项卡上的“其他大括号放置”设置为“行尾”时,选择或清除该复选框才相关。

'switch' 左大括号

如果选中,则在条件表达式的右括号和语句中的左大括号之间插入一个空格switch。否则,不插入空格。

switch ($i) { case 0: $var = '零'; 休息; 默认值:$var = '其他'; }
switch ($i){ case 0: $var = '零'; 休息; 默认值:$var = '其他'; }

仅当“环绕和大括号”选项卡上的“其他大括号放置”设置为“行尾”时,选择或清除该复选框才相关。

'try' 左大括号

try如果选中,则会在关键字和块中的左大括号之间插入一个空格try。否则,不插入空格。

试试 { 得到($x);} 捕捉(异常 $e){ }
尝试{得到($x);} 捕捉(异常 $e){ }

仅当“环绕和大括号”选项卡上的“其他大括号放置”设置为“行尾”时,选择或清除该复选框才相关。

'catch' 左大括号

catch如果选中,则在语句参数列表和块中的左大括号之间插入一个空格catch。否则,不插入空格。

试试 { 得到($x);} 捕捉(异常 $e){ }
尝试{得到($x);} 捕捉(异常 $e){ }

仅当“环绕和大括号”选项卡上的“其他大括号放置”设置为“行尾”时,选择或清除该复选框才相关。

'finally' 左大括号

finally如果选中,则会在关键字和块中的左大括号之间插入一个空格finally。否则,不插入空格。

试试 { 得到($x);} 捕捉(异常 $e){ } 最后 { }
试试 { 得到($x);} 捕捉(异常 $e){ } 最后{ }

仅当“环绕和大括号”选项卡上的“其他大括号放置”设置为“行尾”时,选择或清除该复选框才相关。

关键字之前

物品

描述

“其他”关键字

if如果选中,则在块的右大括号和else/elseif关键字之间插入一个空格。否则,不插入空格。

如果 ($x) { 回声 $x; } 其他 { 回声 $y; }
如果 ($x) { 回声 $x; }else { 回声 $y; }

'while' 关键字

do如果选中,则在块的右大括号和循环中的while关键字之间插入一个空格。do-while否则,不插入空格。

做 { 回声 $var; } 而 ($var > 0);
做 { 回声 $var; }while ($var > 0);

'catch' 关键字

try如果选中,则在块的右大括号和catch关键字之间插入一个空格。否则,不插入空格。

试试 { 得到($x);} 捕捉(异常 $e){ }
尝试{得到($x);}catch (异常 $e){ }

“终于”关键字

catch如果选中,则在块的右大括号和finally关键字之间插入一个空格。否则,不插入空格。

试试 { 得到($x);} 捕捉(异常 $e){ } 最后 { }
试试 { 得到($x);} 捕捉(异常 $e){ }终于 { }

之内

物品

描述

括号

如果选中,则始终插入括号内的空格。否则,永远不会插入空格。

变量/表达式周围的括号

如果选中,则仅当括号包含变量或表达式时,PhpStorm 才会在重新格式化期间在括号内插入空格。仅当您没有通过选中Spaces选项卡的Within节点下的Brackets复选框来配置在括号内强制插入空格时,此设置才会影响重新格式化。

此选项可帮助您保持代码符合WordPress PHP 编码标准

如果清除该复选框,则空格插入策略取决于括号设置,无论括号内的内容类型如何。

数组初始化括号

如果选中,则始终插入数组初始值设定项表达式中括号内的空格。否则,不插入空格。

$array = array(0 => "零", 1 => "一");
$array = array(0 => "零", 1 => "一");

分组括号

如果选中,则始终插入复杂表达式中分组括号内的空格。否则,不插入空格。

$var += ( $var ^ 0x123 ) << 2;
$var += ($var ^ 0x123) << 2;

函数声明括号

如果选中,则始终插入函数声明中括号内的空格。否则,不插入空格。

函数 foo($x, $z) {}
函数 foo($x, $z) {}

函数调用括号

如果选中,则始终插入函数调用中括号内的空格。否则,不插入空格。

富($x,$z);
foo($x, $z) {};

“如果”括号

如果选中,if则始终插入语句中括号内的空格。否则,不插入空格。

如果 ( $x ) { 回声 $x; }
如果 ($x) { 回声 $x; }

'for' 括号

如果选中,for则始终插入循环中括号内的空格。否则,不插入空格。

对于 ( $i = 0; $i < $x; $i++ ) { $y += $i; }
对于 ($i = 0; $i < $x; $i++) { $y += $i; }

'while' 括号

如果选中,while则始终插入循环中括号内的空格。否则,不插入空格。

而 ( $x != $y ) { 回声 ($x * 2); }
while ($x != $y) { echo ($x * 2); }

“切换”括号

如果选中,switch则始终插入语句中括号内的空格。否则,不插入空格。

switch ( $i ) { 默认值:echo "i 等于 0"; 休息; }
switch($i) { 默认值:echo "i 等于 0"; 休息; }

'catch' 括号

如果选中,catch则始终插入构造中括号内的空格。否则,不插入空格。

试试 { 得到($x);} 捕捉(异常 $e){ }
试试 { 得到($x);} 捕捉(异常 $e){ }

<=和

如果选中,则始终插入开始和结束 PHP 标记(<?= 和 ?>)内的空格。否则,不插入空格。

<div><?= echo foo(); ?></div>
<div><?=echo foo();?></div>

在三元运算符 (?:)

物品

描述

前 '?'

后 '?'

前 ':'

后 ':'

之间 '?' 和 ':'

选中此部分中的复选框以在三元(条件)运算符?的周围、周围:、之间和之间?自动插入空格。:

例如,如果在 '?' 之前 After ':'被选中,PhpStorm 会自动在三元条件表达式的?前后插入空格。:否则,不插入空格。

$var = $x > 0 ?1: 2;
$var = $x > 0?1:2;

其他

物品

描述

逗号前/逗号后

如果选中,则会在参数列表、参数列表、数组声明等中的逗号之前/之后自动插入空格。否则,不插入空格。

函数 foo ($x , $z) {}
函数 foo ($x,$z) {}

'for' 分号之前/ 'for' 分号之后

for如果选中,则会在循环中的分号之前/之后自动插入空格。否则,不插入空格。

for($i = 0 ; $i < $x ; $i++) { $y += $i; }
for($i = 0;$i < $x;$i++) { $y += $i; }

类型转换后

如果选中,则会在cast的右括号之后自动插入一个空格。否则,不会插入空格,并且被转换的变量会粘在转换上。

$fst = (字符串) $foo;
$fst = (string)$foo;

返回类型中的冒号之前/返回类型中的冒号之后

如果选中,则会在函数返回类型声明中的冒号之前/之后自动插入空格。否则,不插入空格。

函数 foo() : int {}
函数 foo():int {}

周围 | 在联合类型

|如果选中,则会在联合类型声明中的管道符号周围自动插入空格。否则,不插入空格。

函数 returnNumber ( int | float $number) : int | 漂浮 {}
函数 returnNumber ( int|float $number) : int|float {}

命名参数中的冒号之前/命名参数中的冒号之后

如果选中,则会在命名参数中的冒号之前/之后自动插入空格。否则,不插入空格。

富(开始:$a,结束:$b);
富(开始:$a,结束:$b);

支持枚举中类型声明旁边的冒号之前/支持枚举中类型声明旁边的冒号之后

如果选中,则会在支持的枚举类型声明中的冒号之前/之后自动插入空格。否则,不插入空格。

枚举套装:字符串 { case Hearts = 'H'; 案例钻石='D'; 案例俱乐部 = 'C'; 黑桃 = 'S'; }
枚举套装:字符串 { case Hearts = 'H'; 案例钻石='D'; 案例俱乐部 = 'C'; 黑桃 = 'S'; }

一元非之前 (!) /一元非之后 (!)

如果选中,则在一元 Not 运算符之前/之后自动插入空格!。否则,不插入空格。

如果 ( ! 0 > $x && ! $x < 10) {}
如果 (!0 > $x && !$x < 10) {}

包装和大括号

常用选项

物品

描述

硬包装在

使用此字段指定元素右侧所需的边距空间。如果您选择默认选项,则使用全局设置中的右边距值。

打字时换行

使用这些设置来指定编辑的文本如何适合指定的Hard wrap at

  • 默认值:在这种情况下,PhpStorm 使用全局设置中指定的Wrap on typing选项。

  • :在这种情况下,PhpStorm 使用右边距字段中指定的值。

  • :在这种情况下,此选项被关闭,并且一行可以超过右边距中指定的值。

视觉指南

使用此字段指定多个右边距。您可以保留默认值或输入边距的空格数。如果要指定多个边距,请输入以逗号分隔的数字。

重新格式化时保留

使用这些设置来配置 PhpStorm 在重新格式化源代码时将产生的异常。

物品

描述

换行符

如果选中,则在重新格式化代码后将保留换行符。否则,比标准约定短的行将合并为一行。

在第一列评论

如果选中,则放置在第一列的注释在重新格式化代码后不会改变它们的位置。否则,此类注释将与下一行代码对齐。

一行中的控制语句

如果选中,控制语句将在重新格式化代码后放置在行中。否则,它们将被放置在多行上。

如果(真)$x = 10;否则 ($y < 10) $x = 5; 否则,如果(真)$x = 5;
如果(真)$x = 10;否则 ($y < 10) $x = 5; 否则,如果(真)$x = 5;

一行简单的方法

如果选中,则在重新格式化代码后,简单的方法将保持一致。否则,它们将扩展为多行。

类 Foo() { 公共函数 bar() { } }
类 Foo() { 公共函数 bar() { } }

一行中的简单类

如果选中,简单类将在重新格式化代码后保持一致。否则,它们将扩展为多行。

类 Foo() { }
类 Foo() { }

大括号放置

在本节中,选择在命名空间、类和函数的声明、循环和其他构造中的左大括号的位置。

物品

描述

行结束

如果选中,则左大括号将放置在声明行末尾。

下一行(如果已包装)

如果选中,则左大括号将放置在多行声明行之后的行首。

下一行

如果选中,则左大括号将放置在声明行之后的行首。

下一行移动

如果选中,则左大括号将放置在声明行移动到相应缩进级别之后的行。

下一行,每个移位

如果选中,左大括号将放置在声明行移动到相应缩进级别之后的行,并且下一行也移动到下一个缩进级别。

扩展/实现列表

物品

描述

常见的包装选项

  • 不换行:选择此选项时,不应用特殊换行样式。

    选择此选项后,嵌套对齐和大括号设置将被忽略。

  • 如果长则换行:选择此选项以使超出右边距的行以适当的缩进换行。

  • Wrap always:选择此选项以包装列表中的所有元素,以便每行有一个元素具有适当的缩进。

  • Chop down if long:选择此选项以将列表中超出右边距的元素包裹起来,以便每行有一个元素具有适当的缩进。

多行时对齐

如果选中,则在换行后从新行开始extends的列表或列表中的每个项目都与第一个项目对齐,该项目保持未包装状态。implements

当复选框被清除时,每个项目在包装列表中的位置由所选缩进级别确定。

只有当您选择了换行列表时,复选框的状态才会影响格式,如果选择了不换行选项,则选择或清除复选框无效。

Foo 类扩展 Class1 实现 Class2、Class3、Class4 { }
Foo 类扩展 Class1 实现 Class2、Class3、Class4 { }

扩展/实现关键字

在本节中,为类声明中的extendsand关键字配置包装。implements

如果您选择Do not wrap,则不会应用包装;如果您选择Wrap if longWrap alwaysextends ,则or列表中的每个关键字和每个项目implements都将显示在新行上。

抽象类 Foo 扩展 Class1 实现 Class2, Class3 { }
抽象类 Foo 扩展 Class1 实现 Class2, Class3 { }

函数声明参数

物品

描述

常见的包装选项

  • 不换行:选择此选项时,不应用特殊换行样式。

    选择此选项后,嵌套对齐和大括号设置将被忽略。

  • 如果长则换行:选择此选项以使超出右边距的行以适当的缩进换行。

  • Wrap always:选择此选项以包装列表中的所有元素,以便每行有一个元素具有适当的缩进。

  • Chop down if long:选择此选项以将列表中超出右边距的元素包裹起来,以便每行有一个元素具有适当的缩进。

多行时对齐

如果选中,则参数列表中的每个参数在换行后从新行开始,将由第一个参数对齐,该参数保持展开。

当复选框被清除时,每个项目在包装列表中的位置由所选缩进级别确定。

只有当您选择了换行列表时,复选框的状态才会影响格式,如果选择了不换行选项,则选择或清除复选框无效。

函数栏($x,$y,int $z = 1){}
函数栏($x,$y,int $z = 1){}

'(' 后的新行

如果选中,函数/方法声明中的参数将显示在左括号后的新行上。否则,它们将显示在同一行。

当复选框被清除时,每个项目在包装列表中的位置由所选缩进级别确定。

只有当您选择了换行列表时,复选框的状态才会影响格式,如果选择了不换行选项,则选择或清除复选框无效。

函数栏($x,$y,int){}
函数栏($x,$y,$z){}

将“)”放在新行上

如果选中,函数/方法声明中的右括号将放在新行上。否则,它与最后一个参数显示在同一行。

函数栏($x,$y,int){}
函数栏($x,$y,int){}

保持 ')' 和 '{' 在一行

如果选中,则左大括号将显示在与函数参数相同的行上。否则,左大括号将移动到下一行。

函数 Foo() { }
函数 Foo() { }

函数/构造函数调用参数

物品

描述

常见的包装选项

  • 不换行:选择此选项时,不应用特殊换行样式。

    选择此选项后,嵌套对齐和大括号设置将被忽略。

  • 如果长则换行:选择此选项以使超出右边距的行以适当的缩进换行。

  • Wrap always:选择此选项以包装列表中的所有元素,以便每行有一个元素具有适当的缩进。

  • Chop down if long:选择此选项以将列表中超出右边距的元素包裹起来,以便每行有一个元素具有适当的缩进。

多行时对齐

如果选中,则函数调用中的每个参数在换行后从新行开始,将与第一个参数对齐,该参数保持未包装状态。

当复选框被清除时,每个项目在包装列表中的位置由所选缩进级别确定。

只有当您选择了换行列表时,复选框的状态才会影响格式,如果选择了不换行选项,则选择或清除复选框无效。

$result = foo("arg1", "arg2", true);
$result = foo("arg1", "arg2", true);

'(' 后的新行

如果选中,函数调用中的参数将显示在左括号后的新行上。否则,它们将显示在同一行。

$result = foo("arg1", "arg2", true);
$result = foo("arg1", "arg2", true);

将“)”放在新行上

如果选中,函数调用中的右括号将放在新行上。否则,它与最后一个参数显示在同一行。

$result = foo("arg1", "arg2", true );
$result = foo("arg1", "arg2", true);

为构造函数放置“()”

选择 PhpStorm 是否应在重新格式化代码期间自动在没有参数的构造语句中添加大括号。

  • 原样:保留现有的大括号,不添加新的大括号。

  • Always:总是添加大括号。

  • 从不:总是删除大括号。

$var = new ExampleClass();
$var = 新的示例类;

对齐命名参数

如果选中,函数调用中的命名参数将与最右边的参数对齐。否则,它们将根据缩进设置对齐。

富(开始:$a,结束:$b);
富(开始:$a,结束:$b);

链式方法调用

物品

描述

常见的包装选项

  • 不换行:选择此选项时,不应用特殊换行样式。

    选择此选项后,嵌套对齐和大括号设置将被忽略。

  • 如果长则换行:选择此选项以使超出右边距的行以适当的缩进换行。

  • Wrap always:选择此选项以包装列表中的所有元素,以便每行有一个元素具有适当的缩进。

  • Chop down if long:选择此选项以将列表中超出右边距的元素包裹起来,以便每行有一个元素具有适当的缩进。

多行时对齐

如果选中,则每个调用的方法(在换行后位于新行上)将与第一个保持展开的方法对齐。

当复选框被清除时,每个项目在包装列表中的位置由所选缩进级别确定。

只有当您选择了换行列表时,复选框的状态才会影响格式,如果选择了不换行选项,则选择或清除复选框无效。

$x = $x->one( "a", "b" ) ->two( "c", "d", "e" ) ->three( "fg" ) ->four();
$x = $x->one( "a", "b" ) ->two( "c", "d", "e" ) ->three( "fg" ) ->four();

地方 ';' 在新线上

如果选中,分号;将移动到链式调用中最后一项之后的新行。否则,它会显示在同一行。

$x = $x->one( "a", "b" ) ->two( "c", "d", "e" ) ->three( "fg" ) ->four() ;
$x = $x->one( "a", "b" ) ->two( "c", "d", "e" ) ->three( "fg" ) ->four();

'if()' 语句

物品

描述

第一个元素之前的新行

如果选中,则条件表达式将移至if语句中左括号之后的下一行。否则,它们将保持在同一条线上。

if ( $var == "one") { }
if ($var == "one") { }

最后一个元素后的新行

如果选中,则if语句中条件表达式的右大括号将移至下一行。否则,它们将保持在同一条线上。

if ($var == "one" ) { }
if ($var == "one") { }

强制大括号

选择if语句的大括号引入方法:

  • 不要强制:选择此选项以禁止自动引入大括号。

  • 行时:选择此选项以在语句占用多行时自动引入大括号。请注意,PhpStorm 分析整个语句中的行数,而不仅仅是它的条件。

  • 始终:选中此复选框以始终自动引入大括号。

'else' 在新行

如果选中,则else关键字将移动到if-else语句中的新行。否则,它与前面的语句保持在同一行。

if ($var == "one") { } else $var = true;
if ($var == "one") { } else $var = true;

特殊的“else if”处理

如果选中,else if构造将被特殊处理,并且在重新格式化期间不会拆分。否则,它们将被拆分为嵌套else-if结构。

仅当您选择在if语句中强制使用大括号时,复选框的状态才会影响格式。如果选择了不强制选项,则特殊“else if”处理复选框无效。

如果(真)$x = 10;否则如果 ($y < 10) $x = 5; 否则 $x = 0;
如果 (真) { $x = 10; } else { if ($y < 10) { $x = 5; } 否则 $x = 0;

for()/foreach() 语句

物品

描述

常见的包装选项

  • 不换行:选择此选项时,不应用特殊换行样式。

    选择此选项后,嵌套对齐和大括号设置将被忽略。

  • 如果长则换行:选择此选项以使超出右边距的行以适当的缩进换行。

  • Wrap always:选择此选项以包装列表中的所有元素,以便每行有一个元素具有适当的缩进。

  • Chop down if long:选择此选项以将列表中超出右边距的元素包裹起来,以便每行有一个元素具有适当的缩进。

多行时对齐

选择复选框并清除第一个元素复选框之前的新行时for,一个/foreach循环表达式中的每个项目都在缠绕在新行之后,它由第一项对齐,该第一项保持未打开。

对于 ($i = 0; $i < $x; $i++) { $y += $i; }
对于 ($i = 0; $i < $x; $i++) { $y += $i; }

'(' 后的新行

如果选中,for/foreach循环中的表达式将显示在左括号后的下一行。否则,它们将显示在同一行。

for ($i = 0; $i < $a; $i++) { $y += $i; }
对于 ($i = 0; $i < $a; $i++) { $y += $i; }

将“)”放在新行上

如果选中,for/foreach循环中的右大括号将显示在表达式之后的下一行。否则,它们将显示在同一行。

对于 ( $i = 0; $i < $a; $i++ ) { $y += $i; }
对于 ($i = 0; $i < $a; $i++) { $y += $i; }

强制大括号

选择for/foreach循环的大括号引入方法:

  • 不要强制:选择此选项以禁止自动引入大括号。

  • 行时:选择此选项以在语句占用多行时自动引入大括号。请注意,PhpStorm 分析整个语句中的行数,而不仅仅是它的条件。

  • 始终:选中此复选框以始终自动引入大括号。

'while()' 语句

物品

描述

强制大括号

选择while循环的大括号引入方法:

  • 不要强制:选择此选项以禁止自动引入大括号。

  • 行时:选择此选项以在语句占用多行时自动引入大括号。请注意,PhpStorm 分析整个语句中的行数,而不仅仅是它的条件。

  • 始终:选中此复选框以始终自动引入大括号。

'do ... while()' 语句

物品

描述

强制大括号

选择do-while循环的大括号引入方法:

  • 不要强制:选择此选项以禁止自动引入大括号。

  • 行时:选择此选项以在语句占用多行时自动引入大括号。请注意,PhpStorm 分析整个语句中的行数,而不仅仅是它的条件。

  • 始终:选中此复选框以始终自动引入大括号。

'while' 在新行

如果选中,则关键字将移动到循环中的块while之后的下一行。否则,它保持在同一行。dodo-while

做 { 回声 $var; } 而 ($var > 0);
做{回声$var;} 而 ($var > 0);

“切换”语句

物品

描述

缩进“案例”分支

如果选中,case则语句相对于语句缩进switch。否则,它们将被放置在相同的缩进级别。

switch ($i) { case 0: echo "i equals 0"; 休息; 案例1:回显“我等于1”;休息; }
switch ($i) { case 0: echo "i equals 0"; 休息; 案例1:回显“我等于1”;休息; }

从“case”缩进“break”

如果选中,break语句将相对于case语句缩进。否则,它们将被放置在相同的缩进级别。

switch ($i) { case 0: echo "i equals 0"; 休息; 案例1:回显“我等于1”;休息; }
switch ($i) { case 0: echo "i equals 0"; 休息; 案例1:回显“我等于1”;休息; }

“尝试”声明

物品

描述

'catch' 换行

如果选中,catch语句将放置在try块的右大括号之后的下一行。否则,它们将放置在同一行。

试试 { 得到($x);} 捕捉(异常 $e){ }
试试 { 得到($x);} 捕捉(异常 $e){ }

'终于'在新行

如果选中,finally语句将放置在catch块的右大括号之后的下一行。否则,它们将放置在同一行。

试试 { 得到($x);} 捕捉(异常 $e){ } 最后 { }
试试 { 得到($x);} 捕捉(异常 $e){ } 最后 { }

二进制表达式

物品

描述

常见的包装选项

  • 不换行:选择此选项时,不应用特殊换行样式。

    选择此选项后,嵌套对齐和大括号设置将被忽略。

  • 如果长则换行:选择此选项以使超出右边距的行以适当的缩进换行。

  • Wrap always:选择此选项以包装列表中的所有元素,以便每行有一个元素具有适当的缩进。

  • Chop down if long:选择此选项以将列表中超出右边距的元素包裹起来,以便每行有一个元素具有适当的缩进。

多行时对齐

如果选中,则二元运算中的每个操作数(在换行后从新行开始)与第一项对齐,该项保持未换行。否则,操作数将根据缩进设置进行缩进。

函数 foo($a, $b, $c) { 返回 $a + $b + $c; }
函数 foo($a, $b, $c) { 返回 $a + $b + $c; }

下一行的操作标志

如果选中,二元运算中的运算符将与换行的右操作数一起移至下一行。否则,运算符与左操作数一起停留在前一行。

函数 foo($a, $b, $c) { 返回 $a + $b + $c; }
函数 foo($a, $b, $c) { 返回 $a + $b + $c; }

'(' 后的新行

如果选中,则在左括号后添加一个新行,并将二进制表达式移动到该行。否则,表达式与左括号保持在同一行。

$a = $b + ( $c + $d);
$a = $b + ($c + $d);

将“)”放在新行上

如果选中,则右括号将移动到二进制表达式之后的新行。否则,括号与表达式保持在同一行。

$a = $b + ($c + $d );
$a = $b + ($c + $d);

赋值语句

物品

描述

常见的包装选项

  • 不换行:选择此选项时,不应用特殊换行样式。

    选择此选项后,嵌套对齐和大括号设置将被忽略。

  • 如果长则换行:选择此选项以使超出右边距的行以适当的缩进换行。

  • Wrap always:选择此选项以包装列表中的所有元素,以便每行有一个元素具有适当的缩进。

  • Chop down if long:选择此选项以将列表中超出右边距的元素包裹起来,以便每行有一个元素具有适当的缩进。

下一行的作业标志

如果选中,赋值语句中的赋值符号将与换行的右操作数一起移动到下一行。否则,运算符与左操作数一起停留在前一行。

var $numbers = array("一", "二", "三");
var $numbers = array("一", "二", "三");

对齐连续的作业

如果选中,则连续赋值语句中的赋值符号由最右边的符号对齐。否则,不应用对齐。

$y = foo($x); $i = 富($i); $结果 = $结果。$y 。$i;
$y = foo($x); $i = 富($i); $结果 = $结果。$y 。$i;

类属性/常量组

物品

描述

对齐列中的属性

如果选中,类属性的声明将由最右边的声明对齐。否则,不应用对齐。

类 Foo { public $a; 受保护的$b;私人 $c }
类 Foo { public $a; 受保护的$b;私人 $c }

对齐常量

如果选中,分组常量的声明将按最右边的一个对齐。否则,不应用对齐。

类 Foo { 常量 ONE = 1; 常数二 = 2; 常量三 = 3; }
类 Foo { 常量 ONE = 1; 常数二 = 2; 常量三 = 3; }

三元运算

物品

描述

常见的包装选项

  • 不换行:选择此选项时,不应用特殊换行样式。

    选择此选项后,嵌套对齐和大括号设置将被忽略。

  • 如果长则换行:选择此选项以使超出右边距的行以适当的缩进换行。

  • Wrap always:选择此选项以包装列表中的所有元素,以便每行有一个元素具有适当的缩进。

  • Chop down if long:选择此选项以将列表中超出右边距的元素包裹起来,以便每行有一个元素具有适当的缩进。

“?” 和 ':' 标志在下一行

如果选中,?:符号将与换行的右操作数一起移动到下一行。否则,它们与左操作数一起停留在前一行。

回声($result == 42)?“通过”:“失败”;
回声($result == 42)?“通过”:“失败”;

数组初始化器

物品

描述

常见的包装选项

  • 不换行:选择此选项时,不应用特殊换行样式。

    选择此选项后,嵌套对齐和大括号设置将被忽略。

  • 如果长则换行:选择此选项以使超出右边距的行以适当的缩进换行。

  • Wrap always:选择此选项以包装列表中的所有元素,以便每行有一个元素具有适当的缩进。

  • Chop down if long:选择此选项以将列表中超出右边距的元素包裹起来,以便每行有一个元素具有适当的缩进。

多行时对齐

如果选中,则每个数组元素(在换行后位于新行上)与第一个元素对齐,第一个元素保持未换行状态。否则,所有元素都根据缩进设置对齐。

$arr = [0.1, 0.2, 0.3, 0.4];
$arr = [0.1, 0.2, 0.3, 0.4];

仅当您选择了换行列表时,选择或清除多行时对齐复选框才会影响格式设置。如果选择了不换行选项,则复选框的状态无效。

对齐键值对

如果选中,则所有键值数组元素都与最右边的赋值运算符对齐=>。否则,所有元素都根据缩进设置对齐。

$arr = [0 => "值 1", 1234 => "值 2", 56 => "值 3" ];
$arr = [0 => "值 1", 1234 => "值 2", 56 => "值 3" ];

第一个元素之前的新行

如果选中,则数组的第一个元素将显示在新行上,并且数组的所有元素都根据缩进设置对齐,无论多行时对齐复选框的状态如何。否则,数组的第一个元素保持在同一行,其他元素根据缩进设置对齐。

$arr = [“价值 1”、“价值 2”、“价值 3”];
$arr = [“值 1”、“值 2”、“值 3”];

最后一个元素后的新行

如果选中,右括号将显示在单独的行上。否则,它与数组的最后一个元素保持在同一行。

$arr = [“值 1”、“值 2”、“值 3”];
$arr = ["值 1", "值 2", "值 3"];

修饰符列表

物品

描述

在修饰符列表之后换行

如果选中,代码将被包裹在可见性修饰符列表之后。否则,不执行包装。

受保护的函数 Foo() { }
受保护的函数 Foo() { }

函数返回类型

物品

描述

换行返回类型

如果选中,函数的返回类型声明将放在下一行。否则,它们将保持在同一条线上。

函数 foo() : int { }
函数 foo() : int { }

注释

物品

描述

对齐内联注释

如果选中,位于连续行上的内联注释将由最右边的注释对齐。

回声“一”;//一个回声“二”;//两个回声“三”;//三
回声“一”;//一个回声“二”;//两个回声“三”;//三

PHP开始标签

物品

描述

'<?php' 标签后的新行

如果选中,则代码将移至开始<?php标记之后的下一行。否则,它保持在同一行。

<?php echo "消息";
<?php echo "消息";

“匹配”表达式

物品

描述

对齐“匹配”手臂体

如果选中,则 arm 中的所有表达式match都与最右边的 operator 对齐=>。否则,表达式将根据缩进设置对齐。

匹配 ($i) { 0 => '零', 42 => '四十二', 默认 => 'none' };
匹配 ($i) { 0 => '零', 42 => '四十二', 默认 => 'none' };

组“使用”

物品

描述

常见的包装选项

  • 不换行:选择此选项时,不应用特殊换行样式。

    选择此选项后,嵌套对齐和大括号设置将被忽略。

  • 如果长则换行:选择此选项以使超出右边距的行以适当的缩进换行。

  • Wrap always:选择此选项以包装列表中的所有元素,以便每行有一个元素具有适当的缩进。

  • Chop down if long:选择此选项以将列表中超出右边距的元素包裹起来,以便每行有一个元素具有适当的缩进。

属性

物品

描述

常见的包装选项

  • 不换行:选择此选项时,不应用特殊换行样式。

    选择此选项后,嵌套对齐和大括号设置将被忽略。

  • 如果长则换行:选择此选项以使超出右边距的行以适当的缩进换行。

  • Wrap always:选择此选项以包装列表中的所有元素,以便每行有一个元素具有适当的缩进。

参数的属性

物品

描述

常见的包装选项

  • 不换行:选择此选项时,不应用特殊换行样式。

    选择此选项后,嵌套对齐和大括号设置将被忽略。

  • 如果长则换行:选择此选项以使超出右边距的行以适当的缩进换行。

  • Wrap always:选择此选项以包装列表中的所有元素,以便每行有一个元素具有适当的缩进。

空行

使用此选项卡来定义您希望 PhpStorm 在重新格式化后保留和插入代码的位置和数量。对于每种类型的位置,指定要插入的空行数。结果显示在预览窗格中。

物品

描述

保留最大空行

在此区域中,指定在指定位置重新格式化后要保留的空白行数。

最少空行

在此区域中,指定要在指定位置出现的空白行数。

PHP文档

在此选项卡中,配置要在PHPDoc注释中应用的代码样式。在PHPDoc 注释中了解有关记录 PHP 代码的更多信息。

物品

描述

保留空行

选中此复选框可禁止自动删除空行。

第一个标签前的空行

选中此复选框可在第一个 PHPDoc 标记上方插入一个空行。

参数周围的空行

选中此复选框可在带有@param标签的部分上方和下方插入一个空行。

包裹长线

选中此复选框可使超出右边距的文本换行到下一行。

对齐参数/属性名称

选中此复选框可使$<paramname>元素对齐。

对齐标签注释

选中此复选框可使description元素对齐。

PHPDoc '@param' 空格

在此区域中,设置分隔@param标签元素的空格数。

生成的 PHPDoc 标签

在此区域中,配置要在生成的 PHP 文档块中应用的代码样式,请参阅PHPDoc 注释

  • 使用完全限定的类名:选中此复选框让 PhpStorm 为属性、函数参数returnthrows值等指定完全限定的类名。

  • 在 types 中放置“null”:选中此复选框可让产品为可为空的参数和返回类型生成注释,并选择null应放置指示的位置(即,string|nullnull|string)。

对 PHPDoc 标记进行排序

当您为代码构造生成 PHPDoc 块时,选中此复选框以使 PHPDoc 标记按定义的顺序自动排序。

  • 使用添加按钮and删除按钮从列表中添加或删除 PHPDoc 标记条目。

  • 使用向上按钮向下按钮来排列 PHPDoc 标记条目的顺序。

代码转换

在此选项卡中,配置执行自动代码转换时要应用的代码样式。

物品

描述

将 True/False 常量转换为

选择所需的选项以使truefalse常量以大写或小写形式显示。

将 Null 常量转换为

选择所需的选项以使null常量以大写或小写形式显示。

将 else if/elseif 转换为

选择所需的选项以将else if常量elseif统一显示为else ifelseif

对“使用”语句进行排序

在优化导入时,选择所需的选项以使use语句按字母顺序或长度排序。

数组/列表声明样式

  • 强制短声明样式:选中此复选框可让 PhpStorm 在重新格式化期间将array()结构替换为[]数组声明。

    清除该复选框后,数组声明中的传统文字样式在重新格式化后将被保留。

  • 在多行数组的最后一个元素后添加逗号:选中此复选框可让 PhpStorm 在多行数组声明的最后一项后自动插入一个逗号,以满足所需的编码标准,例如Symfony 编码标准

请参阅数组。有关详细信息的语法

代码生成

在此选项卡中,配置执行某些代码生成重构过程时要应用的代码样式。

物品

描述

变量命名风格

选择所需的选项以使生成的变量以Mixed case、camelCasesnake_case统一显示。

属性默认可见性

选择所需的选项以自动为生成的类属性添加前缀private、、protectedpublic 可见性修饰符

选择的选项将相应地影响提取字段重构、在类构造函数上调用的更改签名重构以及初始化字段意图操作的行为。

Getters/Setters 风格

在此区域中,使用提供的选项来自定义生成的 getter 和 setter

  • Getters/Setters order : 选择,哪些构造必须先出现 - getter 或 setter。

  • Naming style :为生成的 getter 或 setter选择命名方案,即camelCaseor 。snake_case

评论代码

在此区域中,配置要应用于注释的代码样式选项。

  • 第一列的行注释:选中此复选框以使行注释从第一列开始,没有任何缩进。请注意,行注释字符后不会添加额外的空格。该复选框默认处于选中状态。

    当复选框被清除时,行注释从所选代码块内的最小缩进开始进行注释。

  • 在行注释开始处添加空格:选中此复选框可在行注释字符和注释行的第一个字符之间插入空格。

安排

在此选项卡中,定义一组规则以根据您的偏好重新排列您的 PHP 代码。

物品

描述

分组规则

使用该区域设置分组规则。

  • 将 getter 和 setter 放在一起

    选中此复选框可将 getter 和 setter 方法保持在一起。默认情况下,此复选框处于选中状态。

  • 将被覆盖的方法放在一起

    选中此复选框可按类和接口将覆盖的方法组合在一起。在订单列表中,选择保持订单按名称排序选项。

  • 将依赖的方法放在一起

    选中此复选框可将相关方法组合在一起。在订单列表中,选择深度优先订单广度优先订单选项。

匹配规则

使用此区域将元素顺序定义为规则列表,其中每个规则都有一组匹配项,例如修饰符或类型。

  • 添加按钮:使用此按钮添加规则。空白规则区域打开。

  • 添加部分规则按钮:使用此按钮添加部分规则。节规则允许您将方法或变量移动到您定义的节中。

    例如,您可以创建以下部分规则:

    匹配规则

    排列后,类中的方法将按照创建的节规则中的指定重新排列,并被注释包围:

    //方法开始 public function test() {} private function a() { return 1; } static function r() {} //方法结束
  • 删除按钮:使用此按钮从列表中删除规则。

  • 编辑按钮:使用此按钮编辑现有规则。要查看此按钮,请导航到要编辑的规则并单击该按钮。在打开的弹出窗口中,修改规则字段。

  • 上移按钮 下移按钮:使用这些按钮向上或向下移动选定的规则。

空规则

使用此区域创建新的匹配规则或编辑现有的匹配规则。您可以从以下过滤器中进行选择:

  • Type:使用此过滤器为您的规则选择构造函数、方法或属性。

    请注意,单击类型关键字两次会否定该条件。

  • 修饰符:使用此过滤器选择规则的修饰符类型。

    请注意,单击修饰符关键字两次会否定该条件。

  • 名称:使用此字段指定规则中的条目名称。此过滤器仅匹配条目名称,例如字段名称、方法名称、类名称等。该过滤器支持正则表达式并使用标准语法。匹配是针对整个名称执行的。

  • 顺序:使用此列表选择规则的排序顺序。当多个元素使用相同的匹配规则时,此选项很有用。在这种情况下,选择Keep order将保持与重新排列之前设置的顺序相同,选择Order by Name将按照名称对具有相同匹配规则的元素进行排序。

  • 别名:此选项显示在“规则别名定义”对话框中定义的别名。您可以删除不需要的那些。

按字母顺序排序按钮

当您从Order列表中选择Order by Name时,会出现此图标。图标表示此规则中的项目按字母顺序排序。

最后修改:2021 年 9 月 14 日