PHP學習之PHP編碼習慣


命名的注意事項:
  1. 命名要有實際含義
  2. 命名風格保持一致
  3. 不用拼音命名
  4. 不用語言關鍵字
適當的使用注釋
  1. 好的代碼應該是自描述的
  2. 難以理解的地方加上注釋
  3. 函數的功能加上注釋說明
  4. 類的功能和使用方法加注釋
多備份重要的代碼
  1. 代碼不能只有一份
  2. 啟用編譯器的自動備份
  3. 用代碼管理工具備份
堅持字符編碼統一
  • PHP文件編碼==模板編碼==數據庫編碼
使用之前,變量要初始化
  • 使用一個未定義的變量,比使用一個定義好的變量要慢8倍以上!
可以想象,PHP引擎會首先按照正常的邏輯來獲取這個變量,然而這個變量不存在,所以PHP引擎需要拋出一個NOTICE,並且進入一段使用未定義變量時應該走的邏輯,然后返回一個新的變量。
另外,閱讀代碼的角度講,當你使用一個未定義的變量時,會讓閱讀你代碼的人困惑:“這個變量在哪里初始化的,和之前的代碼有關系嗎?和include進來的文件有關系嗎?”
使用NULL ===來代替is_null
  • is_null和NULL ===完全是一樣的效果,但是卻節省了一次函數的調用。
盡量使用===盡量不用==
  • PHP有兩組相等比較運算符===/!==和==/!=,==/!=會有隱式類型轉換,而===/!==會嚴格比較兩個操作時是否類型相同並且值相等。
避免在for循環中計算
  • 會導致每次循環都運行計算
strtr替代str_replace
  • strtr函數的效率是str_replace的四倍
優先使用單引號
  • $row['id']的效率是$row[id]的7倍
header頭的編碼
header("Content-type: text/html;charset=utf-8");
php結束標記不要寫
  •  純PHP代碼,最好在文件末尾刪除PHP結束標記
測試環境開啟所有錯誤
error_reporting(7)
  • E_ERROR
  • E_WARNING
  • E_PARSE
    切記,上線之后要關閉我們的報錯,將我們的錯誤代碼寫入到錯誤日志中,方便查錯
屏蔽錯誤非常低效
  • 養錯不用@的好習慣
用FALSE表示錯誤,用NULL表示不存在
  • 對於操作類的函數,失敗返回FALSE,表示“操作失敗了”,而對於查詢類的函數,如果找不到想要的值,則應該返回NULL,表示“找不到”。
優先使用PHP 內置函數
  • 正則耗時,盡量避免,而采用直接的字符串處理函數代替,如:
filter_var('zhangsan@163.com',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--返回字符串中單詞的使用情況
防御式編程思想
  • 不要相信外部的一切輸入!所以的輸入都要檢查
使用PDO操作MySQL


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM