數組php
$arr[] = 'x'; 代替 array_push($arr, 'x'), 沒有函數調用的消耗laravel
多分支選擇c++
switch case代替多個if else
順便說一下, 當只有一個正確的輸出, 可是中間要排除不少的錯誤是, 不要用多個if else, 能夠這樣,會是代碼優雅一點數組
function demo(){ if () return false; if () return false; if () return false; return 'x'; }
面向對象與面向過程的選擇框架
能簡化的事情, 儘可能簡化, 不要事事都想建一個類再來作, 類的實例化的消耗比函數調用更耗內存, 類的實例化要在是分配堆內存, 不是棧內存, 固然這和代碼可讀性比起來, 都是小事
若是要擴展性, 確定是須要抽象的, 就面向對象函數
儘可能使用php自帶的函數.net
不要想到本身實現, php自帶的函數都是使用c語言來寫的, 你用php寫的運行效率能比c高?
要實現這個儘可能通讀php.net, 知道要實現什麼功能在哪裏找, 不要盲目,debug
關於命名調試
必定要語義話, 看了laravel 我真以爲這麼多年變量函數命名都是假的code
這是php, 不是c/c++
在c中i++只須要一條cpu指令, 因此我一直覺得$i++的效率很高, 可是我看到的框架(好比tp)都沒用使用$i++, 而是使用$i += 1, 才發現我太年輕了, 在php中$i++須要4條opcodes
內存泄漏
php中通常不會內存泄漏的(運行完了就退出了, 沒有常駐進程), 但我就遇到過同事寫的程序, 莫名奇妙的返回空的頁面, 可是看代碼邏輯好像又沒問題, 用xdebug調試才發現, 遞歸沒有出口致使無限調用, 因此是程序就有可能出現內存泄漏可是也要注意有的php server是常駐進程的,