關於函數設計,命名規範什麼的我就不說了。
就php而言,php是一門弱類型語言,不能直觀的看出參數和返回值類型。又是這會讓代碼閱讀者困惑。
比如
function GetMainClassifyFromDB()
{
............................................
}
對於這樣一個函數看不出什麼問題。
但是我們來討論兩種情況:
一種是函數中途某種操作執行失敗了,需要高速調用者返回false
另一種情況是操作成功需要返回結果,假設結果爲空。
對於前者false,對於後者什麼也沒有。
如果有以下代碼
$result = GetMainClassifyFromDB()
{
if(!$result)
{
錯誤處理代碼
}
}
顯然這段代碼是有問題的。
對返回值做類型判斷,又顯得很麻煩。
解決方案:
運行結果通過參數返回,函數返回值僅僅表示函數運行成功或者失敗。
這樣函數參數分爲兩類:輸入參數和輸出參數,輸出參數放在右邊即可。
比如:
function GetMainClassifyFromDB(&$result)
{
if(!ConnectDB())
{
return false;
}
.........
//將所有主分類放入$result中
.........
return true;
}
這樣子我們的代碼就很容易寫了