4.4 方法参数
在参数列表中,每个逗号前不得有空格,每个逗号后必须有一个空格。
具有默认值的方法参数必须位于参数列表的末尾。
<?php
namespace Vendor\Package;
class ClassName
{
public function foo($arg1, &$arg2, $arg3 = [])
{
// method body
}
}
参数列表可以分为多行,每行后续行缩进一次。这样做时,列表中的第一项必须在下一行,并且每行必须只有一个参数。
当参数列表分成多行时,右括号和左括号必须放在一起,它们各自之间有一个空格。
<?php
namespace Vendor\Package;
class ClassName
{
public function aVeryLongMethodName(
ClassTypeHint $arg1,
&$arg2,
array $arg3 = []
) {
// method body
}
}
4.5 抽象,最终和静态
如果存在,抽象和最终声明必须在可见性声明之前。
如果存在,静态声明必须在可见性声明之后。
<?php
namespace Vendor\Package;
abstract class ClassName
{
protected static $foo;
abstract protected function zim();
final public static function bar()
{
// method body
}
}
4.6 方法和函数调用
在进行方法或函数调用时,方法或函数名称与左括号之间不能有空格,在左括号后面不能有空格,并且在右括号之前不能有空格。在参数列表中,每个逗号前不得有空格,每个逗号后必须有一个空格。
<?php
bar();
$foo->bar($arg1);
Foo::bar($arg2, $arg3);
参数列表可以分为多行,每行后续行缩进一次。这样做时,列表中的第一项必须在下一行,并且每行必须只有一个参数。
<?php
$foo->bar(
$longArgument,
$longerArgument,
$muchLongerArgument
);
5、控制结构
控制结构的一般样式规则如下:
- 控制结构关键字后面必须有一个空格
- 在左括号后面不能有空格
- 在右括号之前不能有空格
- 在右括号和左括号之间必须有一个空格
- 结构体必须缩进一次
- 闭合支撑必须在身体后面的下一行
每个结构的主体必须用括号括起来。这标准化了结构的外观,并减少了在新线被添加到身体时引入错误的可能性。
5.1 if,elseif,else
if结构如下所示。注意括号,空格和大括号的位置;而else和elseif与早期身体的右括号位于同一条线上。
<?php
if ($expr1) {
// if body
} elseif ($expr2) {
// elseif body
} else {
// else body;
}
如果所有控制关键字看起来像单个单词,则应该使用关键字elseif而不是else。
5.2 switch,case
开关结构如下所示。请注意括号,空格和大括号的位置。 case语句必须从switch缩进一次,break关键字(或其他终止关键字)必须缩进到与case主体相同的级别。必须有一个评论,例如//在非空案例主体中故意进行跌倒时不会中断。
<?php
switch ($expr) {
case 0:
echo 'First case, with a break';
break;
case 1:
echo 'Second case, which falls through';
// no break
case 2:
case 3:
case 4:
echo 'Third case, return instead of break';
return;
default:
echo 'Default case';
break;
}
5.3 while,do while
while语句如下所示。请注意括号,空格和大括号的位置。
<?php
while ($expr) {
// structure body
}
类似地,do while语句如下所示。请注意括号,空格和大括号的位置。
<?php
do {
// structure body;
} while ($expr);
5.4 for
for语句如下所示。请注意括号,空格和大括号的位置。
<?php
for ($i = 0; $i < 10; $i++) {
// for body
}
5.5 foreach
foreach语句如下所示。请注意括号,空格和大括号的位置。
<?php
foreach ($iterable as $key => $value) {
// foreach body
}
5.6 try catch
try catch块如下所示。请注意括号,空格和大括号的位置。
<?php
try {
// try body
} catch (FirstExceptionType $e) {
// catch body
} catch (OtherExceptionType $e) {
// catch body
}