** 必須 使用 4 個空格符而不是「tab 鍵」進行縮排。
每行的字元數 應該 軟性保持在 80 個之內,理論上 一定不可 多於 120 個,但 一定不可 有硬性限制。
每個 namespace 命名空間宣告語句和 use 宣告語句塊後面,必須 插入乙個空白行。
類的開始花括號 也 必須 寫在函式主體後自成一行。
方法的開始花括號 也 必須 寫在函式主體後自成一行。
類的屬性和方法 必須 新增訪問修飾符(private、protected 以及 public),abstract 以及 final 必須 宣告在訪問修飾符之前,而 static 必須 宣告在訪問修飾符之後。
控制結構的關鍵字後 必須 要有乙個空格符,而呼叫方法或函式時則 一定不可 有。
控制結構的開始花括號必須寫在宣告的同一行,而結束花括號 必須 寫在主體後自成一行。
控制結構的開始左括號後和結束右括號前,都 一定不可 有空格符。
<?php
namespace
vendor\package;
usefoointe***ce;
usebarclass
asbar;
useothervendor\otherpackage\bazclass;
class
fooextends
barimplements
foointe***ce
elseif ($a > $b) else
}final
public
static
function
bar()
}
<?php
namespace
vendor\package;
usefooclass;
usebarclass
asbar;
useothervendor\otherpackage\bazclass;
// ... 更多的 php **在這裡 ...
<?php
namespace
vendor\package;
usefooclass;
usebarclass
asbar;
useothervendor\otherpackage\bazclass;
class
classname
extends
parentclass
implements \arrayaccess, \countable
<?php
namespace
vendor\package;
usefooclass;
usebarclass
asbar;
useothervendor\otherpackage\bazclass;
class
classname
extends
parentclass
implements
\arrayaccess,
\countable,
\serializable
<?php
namespace
vendor\package;
class
classname
<?php
namespace
vendor\package;
class
classname
}
<?php
namespace
vendor\package;
class
classname
}
<?php
namespace
vendor\package;
class
classname
}
<?php
namespace
vendor\package;
abstract
class
classname
}
<?php
bar();
$foo->bar($arg1);
foo::bar($arg2, $arg3);
<?php
$foo->bar(
$longargument,
$longerargument,
$muchlongerargument
);
左括號 ( 後 一定不可 有空格。
右括號 ) 前也 一定不可 有空格。
右括號 ) 與開始花括號 必須 在結構體主體後單獨成行。
<?php
if ($expr1) elseif ($expr2) else
<?php
switch ($expr)
<?php
while ($expr)
<?php
do while
<?php
for ($i = 0; $i < 10; $i++)
<?php
foreach ($iterable as $key => $value)
<?php
try catch (firstexceptiontype $e) catch (otherexceptiontype $e)
<?php
$closurewithargs = function
($arg1, $arg2)
;$closurewithargsandvars = function
($arg1, $arg2)
use($var1, $var2)
;
<?php
$longargs_novars = function
( $longargument,
$longerargument,
$muchlongerargument);
$noargs_longvars = function
()use
( $longvar1,
$longervar2,
$muchlongervar3);
$longargs_longvars = function
( $longargument,
$longerargument,
$muchlongerargument
)use
( $longvar1,
$longervar2,
$muchlongervar3);
$longargs_shortvars = function
( $longargument,
$longerargument,
$muchlongerargument
)use
($var1)
;$shortargs_longvars = function
($arg)
use(
$longvar1,
$longervar2,
$muchlongervar3
);
<?php
$foo->bar(
$arg1,
function
($arg2)
use($var1)
, $arg3
);
函式的定義
操作符和賦值
行內對齊
注釋和文件描述塊
類名的字首及字尾
最佳實踐
PHP工程規範 PSR 2
1 必須滿足psr 1 2 必須使用4個空格作為縮排,不能使用tabs 3 對於行數限制沒有嚴格要求,但建議在120行以內,每一行建議不多於80個字元 4 namespace宣告之後必須空行,use宣告之後必須空行 5 類名後面的開大括弧必須另起一行,閉大括弧必須另起一行 6 方法名後面的開大括弧必...
PSR編碼規範
規範 規範使用說明 規範是乙個php開發工程師必須遵循的基本開發準則,為了提公升 質量,成為乙個合格的軟體開發工程師,規範作為考試標準之一,列為預設評分標準。規範分為四部分 psr 1基本 規範 psr 2 風格規範 psr 3日誌介面規範 psr 4 autoloader,具體參看每一部分規範的詳...
PSR規範 php編碼規範
前言 一開始寫 的時候,只是自己覺得怎麼舒服怎麼寫,什麼格式都是自己覺得順眼就怎麼安排,沒有怎麼閱讀什麼規範的 最近讀了 php the right way 發現寫 作為一門工程學還是要優雅,規範,清爽的寫,so,分享以下編碼規範,每次寫完 之後,自己都會拿出規範,讓自己的 風格盡量遵守這些編碼規則...