想要當一個出色的程式設計師,一手好的程式碼規格是很重要的,那麼如何才能寫出一手好程式碼呢?本文我們就給大家一些PHP 編碼規格及建議。
PHP程式碼檔案必須以
<?php //开头 // 不结尾
PHP程式碼檔案必須以不含BOM的UTF-8編碼。
例sublime, setting增加,"show_encoding" : true
每行的字元數不超過80 個字元
例,sublime "word_wrap": "true", "wrap_width": 80,
tap鍵4個空格
例,sublime "tab_size": 4,
PHP程式碼中應該只定義類別(trait) /函數/常數/其他會產生副作用的操作(如:產生檔案輸出以及修改.ini 設定檔等),只能選其一。
例, a.php class A { } b.php function demo() { } c.php define('A', value); d.php ini_set('some_vars', value);
類別/trait/Interface的命名必須遵循 StudlyCaps 大寫開頭的駝峰命名規格。
class StudlyCaps { } trait StudlyCaps { } Interface StudlyCaps { }
類別中的常數所有字母都必須大寫,單字間用底線分隔。
define('FOO_BAR', 'something more'); const FOO_BAR = value;
方法(類別/trait中)名稱必須符合 camelCase 式的小寫開頭駝峰命名規格。
class StudlyCaps { public function studlyCaps() { // coding... } }
函數名稱必須符合 snake_case 式的底線式命名規格。
function snake_case() { // coding... }
N(private)方法(類別/trait中)名稱必須符合_camelCase 式的前置底線小寫的開頭駝峰命名規範。
class StudlyCaps { private function _studlyCaps() { // coding... } }
方法名稱 第一個字 為動詞。
class StudlyCaps { public function doSomething() { // coding... } }
變數 必須符合 camelCase 式的小寫開頭駝峰命名規格。
class StudlyCaps { public function doSomething() { $someVariable = 'demo'; // coding... } }
方法/函數多參數時,之間要有1個空格
class StudlyCaps { public function doSomething($variableOne, $variableTwo) { // coding... } }
運算子/表達式要有一個空格
$a = $b + $c; $a = $b . $c;
每個namespace 命名空間宣告語句區塊和use 宣告語句區塊後面,必須插入一個空白行。
namespace Standard; // 空一行 use Test\TestClass;//use引入类 // 空一行
類別的開始花括號「{ 「必須寫在函數宣告後自成一行,結束花括號」}」也必須寫在函數主體後自成一行。
class StudlyCaps { }
class StudlyCaps { public function studlyCaps() { // coding... } } function snake_case() { // coding... }
abstract class StudlyCaps { abstract public function studlyCaps(); final public static function studlyCapsOne() { } }
if ($valueOne === $valueTwo) { // code... } switch ($valueThree) { case 'value': // code... break; default: // code... break; } do { // code... } while ($valueFour <= 10); while ($valueFive <= 10) { // code... } for ($i = 0; $i < $valueSix; $i++) { // code... } $demo = new Demo() $demo->doSomething(); do_something();</p></li> </ul> <p></p> <ul class=" list-paddingleft-2">控制結構的關鍵字後 必須 要有一個空格符,而呼叫方法或函數時一定不可 有。 <li> <p></p> <pre class="brush:php;toolbar:false">if ($valueOne === $valueTwo) { // code... } switch ($valueThree) { case 'value': // code... break; default: // code... break; } do { // code... } while ($valueFour <= 10); while ($valueFive <= 10) { // code... } for ($i = 0; $i < $valueSix; $i++) { // code... }
if ($valueOne === $valueTwo) {// 控制结构(右边和)左边不加空格 // code... }
// heredoc语法 $sql = <<<SQL SELECT delivery_id FROM d_test WHERE delivery_id IN (123,234) GROUP BY delivery_id HAVING SUM(send_number) <= 0; SQL;
##
if ($a > 0 && $b > 0 && $c > 0 && $d > 0 && $e > 0) { }
public function tooLangFunction( $valueOne = '', $valueTwo = '', $valueThree = '', $valueFour = '', $valueFive = '', $valueSix = '') { //coding... }
$this->nameTest->functionOne() ->functionTwo() ->functionThree();
$a = [ 'aaa' => 'aaa', 'bbb' => 'bbb' ];
$str = 'str'; $arg = "$str";
單引號多引號
字串中有變量,雙引號
/** * 类描述 * * desc */ class StandardExample { /** * 常量描述. * * @var string */ const THIS_IS_A_CONST = ''; /** * 属性描述. * * @var string */ public $nameTest = ''; /** * 构造函数. * * 构造函数描述 * @author name <email> * @param string $value 形参名称/描述 * @return 返回值类型 返回值描述 * 返回值类型:string,array,object,mixed(多种,不确定的),void(无返回值) */ public function __construct($value = '') { // coding... }
/** * 成员方法名称. * * 成员方法描述 * * @param string $value 形参名称/描述 * * @example domain/api/controller/action?argu1=111&argu2=222 */ public function testFunction($value = '') { // code... }
#api方法提供測試範例example
try { // coding... } catch (\Exception $e) { // coding... }
// 改写doSome为doSomething class StandardExample { /** * 方法列表 * * @var array */ private $_functionList = []; public function __construct($functionList = array()) { $this->_functionList = $value; } public function doSome() { $this->functionOne(); $this->functionTwo(); $this->functionThree(); $this->functionFour(); } public function doSomething() { foreach($this->_functionList as $function) { $this->$function(); } } ... }
// +---------------------------------------------------------------------- // | Company Name xx服务 // +---------------------------------------------------------------------- // | Copyright (c) 2017 http://domain All rights reserved. // +---------------------------------------------------------------------- // | Author: name <email> // +----------------------------------------------------------------------
// +---------------------------------------------------------------------- // | Company Name xx服务 // +---------------------------------------------------------------------- // | Copyright (c) 2017 http://domain All rights reserved. // +---------------------------------------------------------------------- // | Author: name <email> // +----------------------------------------------------------------------
以上内容就给新手程序员的一些编写代码的规范及建议,希望能帮助到大家。
相关推荐:
以上是新手PHP 編碼規範及建議的詳細內容。更多資訊請關注PHP中文網其他相關文章!