PHP代碼規(guī)范的10個(gè)好習(xí)慣
PHP被稱為 dirty but quick 的編程語(yǔ)言。盡管在其它編程語(yǔ)言使用者看來(lái),PHP 程序并不簡(jiǎn)潔美觀,但是我們可以通過(guò)一些優(yōu)秀的編程習(xí)慣,也能讓PHP的代碼看起來(lái)比較舒服優(yōu)雅。有哪些方法呢?下面逐一說(shuō)下。
1. 規(guī)劃代碼結(jié)構(gòu)優(yōu)秀的PHP代碼應(yīng)該有清晰的結(jié)構(gòu)。PHP面向?qū)ο蟮奶匦栽试S程序員將應(yīng)用程序分解為函數(shù)或方法。如果代碼晦澀難懂,你也可以添加注釋,使代碼的功能一目了然。編碼時(shí)應(yīng)盡量將前端代碼(HTML/CSS/JavaScript)與應(yīng)用程序的服務(wù)端規(guī)則分開,或者你可以使用遵循MVC模式的PHP框架來(lái)構(gòu)建你的應(yīng)用程序。
2. 編碼風(fēng)格統(tǒng)一優(yōu)秀的PHP代碼應(yīng)該具備統(tǒng)一的風(fēng)格。比如,為變量和函數(shù)制定統(tǒng)一的命名規(guī)則,為循環(huán)任務(wù)(比如數(shù)據(jù)庫(kù)存取、錯(cuò)誤處理)制定統(tǒng)一的接入標(biāo)準(zhǔn),或者保持有規(guī)律的代碼縮進(jìn),這些編碼習(xí)慣都可以讓別人閱讀代碼更加輕松。
3. 可移植性優(yōu)秀的PHP代碼應(yīng)該具有可移植性。程序員應(yīng)學(xué)會(huì)運(yùn)用PHP現(xiàn)有的特性(比如魔術(shù)引號(hào)和短標(biāo)簽等),應(yīng)該了解產(chǎn)品需求,適應(yīng)PHP的特點(diǎn),保證寫出的PHP代碼具有可移植性和跨平臺(tái)性。
4. 代碼安全性優(yōu)秀的PHP代碼應(yīng)該具有安全性。PHP5具有卓越的特性和靈活性,但應(yīng)用程序的安全往往掌握在程序員的手中。作為專業(yè)的PHP開發(fā)人員,應(yīng)該對(duì)安全漏洞有一些深入了解,常見的安全漏洞有跨站腳本攻擊(XSS)、跨站請(qǐng)求偽造(CSRF)、代碼注入漏洞和字符編碼漏洞等。使用PHP中的特定功能和函數(shù)(比如mysql_real_escape_string等)可以幫助程序員寫出安全的代碼。
5. 添加注釋代碼注釋是代碼中的重要組成部分,它解釋了函數(shù)運(yùn)行的目的,這種注釋會(huì)在代碼以后的維護(hù)中提供非常有用的幫助。
6. 避免簡(jiǎn)寫標(biāo)記應(yīng)使用完整的起始標(biāo)記,不推薦使用簡(jiǎn)寫的起始標(biāo)記。
7. 用單引號(hào)代替雙引號(hào)由于PHP會(huì)對(duì)雙引號(hào)中的內(nèi)容進(jìn)行變量搜索,為了避免這種搜索帶來(lái)的性能影響,程序員應(yīng)該使用單引號(hào)引用字符串。
8. 轉(zhuǎn)義輸出應(yīng)該在htmlspecialchars函數(shù)中使用ENT_QUOTES參數(shù),保證單引號(hào)(’)也可以被轉(zhuǎn)義。盡管沒(méi)有規(guī)定必須這樣做,但這是一個(gè)好習(xí)慣。
9. 使用逗號(hào)隔開字符串輸出字符串連接符(.)可以將單一的字符串傳遞給echo語(yǔ)句進(jìn)行輸出,與之相比,逗號(hào)可以實(shí)現(xiàn)echo語(yǔ)句中字符串的分別輸出,這對(duì)PHP來(lái)說(shuō)是一個(gè)性能改善。
10. 在輸出前檢查傳遞值應(yīng)該記得在輸出前檢查$_GET[’query’] 的傳遞值。使用isset函數(shù)或是empty函數(shù)可以檢查變量值是否為空。
相關(guān)文章:
1. 理解PHP5中static和const關(guān)鍵字2. IntelliJ IDEA安裝插件的方法步驟3. php模擬實(shí)現(xiàn)斗地主發(fā)牌4. .Net Core使用Coravel實(shí)現(xiàn)任務(wù)調(diào)度的完整步驟5. Vue封裝一個(gè)TodoList的案例與瀏覽器本地緩存的應(yīng)用實(shí)現(xiàn)6. jQuery 實(shí)現(xiàn)DOM元素拖拽交換位置的實(shí)例代碼7. Vuex localStorage的具體使用8. vue 使用localstorage實(shí)現(xiàn)面包屑的操作9. spring acegi security 1.0.0 發(fā)布10. MyBatis中的JdbcType映射使用詳解

網(wǎng)公網(wǎng)安備