PHP的编码规范旨在提高代码的可读性、可维护性和一致性。以下是一些常见的PHP编码规范,主要参考了PSR(PHP Standard Recommendations)标准,尤其是PSR-1、PSR-2和PSR-12。
.php
扩展名。ClassName
。methodName
。function_name
。$variableName
。CONSTANT_NAME
。if
、for
、foreach
等)的起始括号后换行,结束括号前换行。+
、-
、=
等)前后加空格。if
、for
、foreach
等)后加空格。if
、elseif
、else
、for
、foreach
、while
等控制结构的关键字后应加一个空格。控制结构的条件部分应使用括号括起来。
if ($condition) {
// code
} elseif ($anotherCondition) {
// code
} else {
// code
}
函数和方法的返回值类型声明应使用PHP 7.0引入的返回类型声明语法。
function functionName($arg1, $arg2): int
{
// code
return $result;
}
public
、protected
、private
)。类中的常量应使用大写字母和下划线分隔。
class ClassName
{
const CONSTANT_NAME = 'value';
private $propertyName;
public function methodName($arg1, $arg2): int
{
// code
return $result;
}
}
use
语句应在命名空间声明之后,类定义之前。use
语句应按字母顺序排列,并分组(如先排核心类库,再排第三方库,最后排自定义类)。
<?php
namespace Vendor\Package;
use AnotherVendor\AnotherPackage;
use Vendor\Package\SomeClass;
class ClassName
{
// code
}
//
,多行注释使用/* ... */
。注释应放在代码的上方,而不是同一行。
/**
* This is a sample class.
*/
class ClassName
{
/**
* This is a sample method.
*
* @param int $arg1 Description of arg1
* @param string $arg2 Description of arg2
* @return int Description of return value
*/
public function methodName($arg1, $arg2): int
{
// This is a single-line comment
return $arg1 + $arg2;
}
}
捕获异常时,尽量具体化异常类型,而不是捕获所有异常。
try {
// code that may throw an exception
} catch (SpecificException $e) {
// handle specific exception
} catch (AnotherException $e) {
// handle another exception
}
类文件应放在与命名空间对应的目录结构中。
{
"autoload": {
"psr-4": {
"Vendor\\Package\\": "src/"
}
}
}
eval()
函数。goto
语句。遵循这些编码规范可以使你的PHP代码更加一致、易读和易于维护。建议使用工具如PHP_CodeSniffer或PHP-CS-Fixer来自动检查和修复代码风格问题。