PHP代碼規範及技巧

整理一些開發過程當中一些不錯的點順便整理成本身的開發規範,方便審視本身。
裏面有些是參考其它博客我的以爲不錯的點若有侵犯可刪,持續完善更新中。
有不足的地方但願你們能夠給出建議。

變量

  1. 一個變量最好只有一個做用,切勿爲了節省代碼行數,以爲一個變量能夠作多個用途。(單一原則)
  2. 方法內部若是有局部變量,那麼局部變量應該靠近在使用的地方,而不是所有在頂部聲明所有的局部變量。

運算符

  1. 1元運算符和變量之間不須要空格。例如:i++ 而不是 i ++
  2. 2元運算符與變量之間須要空格隔開。例如: $val = 0.1 * $num 
  3. 3元運算嵌套使用時能夠換行,方便閱讀理解
    $host = !empty($_REQUEST['domain'])
    	? $_REQUEST['domain']
    	: (!empty($_SERVER['argv'][2])
    		? $_SERVER['argv'][2]
    		: $_SERVER['SERVER_NAME']);

     

  4. 當有多個運算符的時候須要使用括號來明確正確的順序,可讀性較好。例如: 2 << (1 + 2 * 3 - 4)

條件表達式

  1. 當條件過多、或過長的時候能夠換行,爲了代碼整齊和方便閱讀
    if( !is_array && data == 0 ||
        is_array && !data.length
    ) {
       // code
    }

     

  2. 在一個代碼塊裏面儘量的使用 return 來結束,減小代碼縮進以及方便閱讀。對了PHP的else if 和elseif 均可以使用, 兩種語法都不會報錯,統一用elseif
    //不善用return的代碼
    funcion f() {
        $ret = '';
        if(isNull) {
            $ret = 'NULL'
        } elseif(isString) {
            $ret = 'STRING'
        } elseif(isArray) {
            $ret = 'ARRAY'
        }
        return $ret;
    }
    
    
    // 善用return的代碼
    function f() {
        if(isNull) {
            return 'NULL';
        }
    
        if(isString) {
            return 'STRING';
        }
    
        if(isArraay) {
            return 'ARRAY';
        }
    }

     

  3. 每一個分支的實現都必須使用 {} 包含。
  4. 條件判斷應該讓變量在左,條件在右。
    if($num == 2) {}

     

  5. switch 語句後面的每一個分支都須要用大括號括起來。
  6. switch 語句後面的 default 分支必須存在,除非是在對枚舉進行 switch。

 

 

方法

  1. 方法與方法之間間隔三行。
  2. 大量的方法儘可能要以組的形式放在一塊兒,好比生命週期函數、公有方法、私有方法、setter && getter...
  3. 一個方法內的代碼最好保持在50行之內,通常經驗來看若是一個方法裏面的代碼行數過多,代碼的閱讀體驗就不好。
  4. 一個函數只作一個事情,作到單一原則。全部的類、方法設計好後就能夠相似搭積木同樣實現一個系統。
  5. 多個方法若是有邏輯重複的代碼,建議將重複的部分抽取出來,成爲獨立的函數或者方法進行調用
相關文章
相關標籤/搜索