1、开闭标签

首先,PHP代码必须以<?php或<?=标签开始。
换言之,我们不应该再利用短标签<?或其它变革形式。

2、副浸染

php代码风格PHP编码作风规范具体介绍 Ruby

PHP文件要么声明类、接口、函数等,要么实行逻辑操作(如读写文件或向浏览器发送输出),但不应该同时兼具两者。

3、命名

类的命名必须遵守大写开头的驼峰式命名规范。
换言之,类名应该以大写字母开头。
属性的命名办法没有逼迫哀求,但该当保持同等。
方法名称必须符合小写开头的驼峰式命名规范。
类常量中的所有字母必须大写,单词之间以下划线分隔。

PSR-2编码风格规范

1、PSR-1哀求PHP代码以<?php开头。

PSR-2规定,纯PHP文件不应该以一个?>标签结束,而该当以一个空缺行结束。

2、namespace声明后该当插入一个空缺行,use声明语句块后也该当要有一个空缺行。

不要在同一行代码中进行多次use声明。

3、类的开始和结束

class关键字、类名,以及extends和implements关键字必须在同一行中。
如果一个类实现了多个接口,那么这些接口名可以在类声明的同一行中,也可以各占一行。
如果选择将这些接口名放在多行中,那么第一个接口名必须自成一行,而不是跟在implements关键字后面。
类的开始花括号({)该当写在函数声明后自成一行,结束花括号(})也该当写在类体后自成一行。
也便是说,类声明看起来如下所示

class EarthGame extends Game implements Playable, Savable

{

//类体

}

也可以将类名与类声明放在同一行中。

class EarthGame extends Game implements Playble, Savable

{

//类体

}

4、属性声明

每个属性都必须有访问润色符(public、private或protected)。
不可以利用关键字var声明属性。
PSR-1中已经涵盖了属性名的规范:可以利用下划线、小写驼峰式命名或大写驼峰式命名办法,但该当保持同等。
(个人推举属性采取小写式驼峰)

5、方法的开始和结束

所有方法必须具有访问润色符(public、private或protected)。
访问润色符必须在abstract或final之后,static之前。
具有默认值得方法参数该当放在参数列表的末端。

●单行声明

方法的开始花括号({)该当写在方法名后自成一行,结束花括号(})也该当写在方法体后自成一行(直接跟在方法代码之后)。
方法参数列表不应该以空格开始或结束(即该当紧贴包裹着它们的圆括号)。
对付每个参数,参数名(或默认值)后面该当有一个逗号,且逗号后面有一个空格。
这听起来彷佛有些繁芜,如下所示:

final public static function generateTile(int $diamondCount, bool $polluted = false)

{

//方法体

}

●多行声明

如果方法有很多参数,那么单行方法声明是不实际的。
此时我们可以分割参数列表,以便将每个参数(包括类型、参数变量、默认值和逗号)单独放在缩进的一行中。
这种情形下,结束圆括号该当放在参数列表后面一行中,并与方法声明的开始位置对齐。
开始花括号({)该当在同一行的结束圆括号之后,以空格分隔。
方法体该当重新的一行开始。
同样,这听起来彷佛很繁芜,以下示例该当能帮助你理解这条规定。

public function __construct(

int $size,

string $name,

bool $warparound = false,

bool $aliens = false

) {

//方法体

}

6、行与缩进

代码该当利用4个空格符来缩进,而不是利用制表符。
我们可以检讨编辑器设置,将其设置为按下Tab键时利用4个空格而不是制表符。
每行代码的长度不应该超过120个字符。

7、方法与函数调用

方法名称和开始圆括号之间不能有空格。
方法调用中的参数列表的规则与方法声明中的参数列表规则相同。
换言之,对付单行调用,开始圆括号后或结束圆括号前不能有空格。
每个参数之后该当紧跟一个逗号,下一个参数前该当有一个空格。
如果须要利用多行代码进行方法调用,那么每个参数该当自成一行并缩进,而且结束圆括号也该当自成一行。

$earthGanme = new EarthGame(

5,

'earth',

true,

true

);

$earthGame::generateTile(5, true);

8、流程掌握

流程掌握关键字(if、for、while等)后面必须紧跟一个空格。
但是,开始圆括号后不能有空格。
同样,结束圆括号前不能有空格。
因此内容该当紧贴在括号内的。
与类和(单行)函数声明比较,流程掌握代码的开始花括号该当与结束圆括号在同一行。
结束花括号该当自成一行。
以下是一个大略的示例。

$title = [];

for ($x = 0; $x < $diamondCount; $x++) {

if ($polluted) {

$title[] = new PollutionDecorator(new DiamondDecorator(new Plains()));

} else {

$title[] = new DiamondDecorator(new Plains());

}

}