命名的註意事項: 命名要有實際含義 命名風格保持一致 不用拼音命名 不用語言關鍵字 適當的使用註釋 好的代碼應該是自描述的 難以理解的地方加上註釋 函數的功能加上註釋說明 類的功能和使用方法加註釋 多備份重要的代碼 代碼不能只有一份 啟用編譯器的自動備份 用代碼管理工具備份 堅持字元編碼統一 PHP ...
命名的註意事項:
- 命名要有實際含義
- 命名風格保持一致
- 不用拼音命名
- 不用語言關鍵字
- 好的代碼應該是自描述的
- 難以理解的地方加上註釋
- 函數的功能加上註釋說明
- 類的功能和使用方法加註釋
- 代碼不能只有一份
- 啟用編譯器的自動備份
- 用代碼管理工具備份
- PHP文件編碼==模板編碼==資料庫編碼
- 使用一個未定義的變數,比使用一個定義好的變數要慢8倍以上!
可以想象,PHP引擎會首先按照正常的邏輯來獲取這個變數,然而這個變數不存在,所以PHP引擎需要拋出一個NOTICE,並且進入一段使用未定義變數時應該走的邏輯,然後返回一個新的變數。 另外,閱讀代碼的角度講,當你使用一個未定義的變數時,會讓閱讀你代碼的人困惑:“這個變數在哪裡初始化的,和之前的代碼有關係嗎?和include進來的文件有關係嗎?” 使用NULL ===來代替is_null
- is_null和NULL ===完全是一樣的效果,但是卻節省了一次函數的調用。
- PHP有兩組相等比較運算符===/!==和==/!=,==/!=會有隱式類型轉換,而===/!==會嚴格比較兩個操作時是否類型相同並且值相等。
- 會導致每次迴圈都運行計算
- strtr函數的效率是str_replace的四倍
- $row['id']的效率是$row[id]的7倍
header("Content-type: text/html;charset=utf-8");php結束標記不要寫
- 純PHP代碼,最好在文件末尾刪除PHP結束標記
error_reporting(7)
- E_ERROR
- E_WARNING
- E_PARSE
- 養錯不用@的好習慣
- 對於操作類的函數,失敗返回FALSE,表示“操作失敗了”,而對於查詢類的函數,如果找不到想要的值,則應該返回NULL,表示“找不到”。
- 正則耗時,儘量避免,而採用直接的字元串處理函數代替,如:
filter_var('[email protected]',FILTER_VALIDATE_EMAIL);
- 有用的PHP內置函數
usort--使用用戶自定義的比較函數對數組中的值進行排序 rawurlencode--按照RFC1738對url進行編碼 parse_url--解析URL,返回其組成部分 http_build_query--生成URL-encode之後的請求字元串 exif_imagetype--判斷一個圖像的類型 uniqid--生成一個唯一ID get_browser--獲取瀏覽器具有的功能 str_word_count--返回字元串中單詞的使用情況防禦式編程思想
- 不要相信外部的一切輸入!所以的輸入都要檢查