class ClassName
{
public function aVeryLongMethodName(
ClassTypeHint $arg1,
&$arg2,
array $arg3 = []
) {
// method body
}
}
4.5. abstract,final和 static
如果存在,abstract和final声明必须放在可见性声明前面。
如果存在,static声明必须跟着可见性声明。
复制代码 代码如下:
<?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 if使用以保持所有的控制关键词像一个单词。
5.2. switch,case
一个switch结构看起来应该像下面这样。注意括号,空格和花括号。case语句必须从switch处缩进,并且break关键字(或其他中止关键字)必须和case主体缩进在同级。如果一个非空的case主体往下落空则必须有一个类似// no break的注释。
复制代码 代码如下:
<?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语句看起来应该像下面这样。注意括号,空格和花括号的位置。
复制代码 代码如下: