注意:只用空格,不和制表符混合使用,将会对避免代码差异,补丁,历史和注解中的一些问题有帮助。使用空格还可以使调整细微的缩进来改进行间对齐变得非常简单。
2.5. 关键词和 True/False/Null
PHP keywords 必须使用小写。
PHP常量true, false和null必须使用小写。
3. Namespace和Use声明
如果存在,namespace声明之后必须有一个空行。
如果存在,所有的use声明必须放在namespace声明的下面。
一个use关键字必须只用于一个声明。
在use声明代码块后面必须有一个空行。
示例:
复制代码 代码如下:
<?php
namespace Vendor\Package;
use FooClass;
use BarClass as Bar;
use OtherVendor\OtherPackage\BazClass;
// ... additional PHP code ...
4. 类,属性和方法
术语“类”指所有的类,接口和特性(traits)。
4.1. 扩展和继承
一个类的extends和implements关键词必须和类名在同一行。
类的左花括号必须放在下面自成一行;右花括号必须放在类主体的后面自成一行。
复制代码 代码如下:
<?php
namespace Vendor\Package;
use FooClass;
use BarClass as Bar;
use OtherVendor\OtherPackage\BazClass;
class ClassName extends ParentClass implements \ArrayAccess, \Countable
{
// constants, properties, methods
}
implements一个列表可以被拆分为多个有一次缩进的后续行。如果这么做,列表的第一项必须要放在下一行,并且每行必须只有一个接口。
复制代码 代码如下:
<?php
namespace Vendor\Package;
use FooClass;
use BarClass as Bar;
use OtherVendor\OtherPackage\BazClass;
class ClassName extends ParentClass implements
\ArrayAccess,
\Countable,
\Serializable
{
// constants, properties, methods
}
4.2. 属性
所有的属性必须声明可见性。
var关键词不可用来声明属性。
一个语句不可声明多个属性。
属性名称不应使用单个下划线作为前缀来表明保护或私有的可见性。
一个属性声明看起来应该下面这样的。
复制代码 代码如下:
<?php
namespace Vendor\Package;
class ClassName
{
public $foo = null;
}
4.3. 方法
所有的方法必须声明可见性。
方法名不应只使用单个下划线来表明是保护或私有的可见性。
方法名在声明之后不可跟随一个空格。左花括号必须放在下面自成一行,并且右花括号必须放在方法主体的下面自成一行。左括号后面不可有空格,右括号前面不可有空格。
一个方法定义看来应该像下面这样。 注意括号,逗号,空格和花括号:
复制代码 代码如下:
<?php
namespace Vendor\Package;
class ClassName
{
public function fooBarBaz($arg1, &$arg2, $arg3 = [])
{
// method body
}
}
4.4. 方法参数
在参数列表中,逗号之前不可有空格,逗号之后必须要有一个空格。
方法中有默认值的参数必须放在参数列表的最后面。
复制代码 代码如下:
<?php
namespace Vendor\Package;
class ClassName
{
public function foo($arg1, &$arg2, $arg3 = [])
{
// method body
}
}
参数列表可以被分为多个有一次缩进的多个后续行。如果这么做,列表的第一项必须放在下一行,并且每行必须只放一个参数。
当参数列表被分为多行,右括号和左花括号必须夹带一个空格放在一起自成一行。
复制代码 代码如下:
<?php
namespace Vendor\Package;