如何讓PHP編碼更加好看利于閱讀
寫(xiě)出優(yōu)秀的程序代碼是一門(mén)藝術(shù),要想如此,就必須在一開(kāi)始就養(yǎng)成良好的編程習(xí)慣。良好的編程習(xí)慣不僅有助于項(xiàng)目初期的設(shè)計(jì)(如模塊化),還可以使你編寫(xiě)的代碼更易于理解,從而使代碼的維護(hù)工作更輕松、更省力。不好的編程習(xí)慣則會(huì)造成代碼bug,并且會(huì)使以后的維護(hù)工作困難重重。
本文以PHP語(yǔ)言為例,介紹一些良好的編程習(xí)慣,希望能夠?qū)δ阌兴鶐椭?/p>
1. 規(guī)劃代碼結(jié)構(gòu)
優(yōu)秀的PHP代碼應(yīng)該有清晰的結(jié)構(gòu)。PHP面向?qū)ο蟮奶匦栽试S程序員將應(yīng)用程序分解為函數(shù)或方法。如果代碼晦澀難懂,你也可以添加注釋?zhuān)勾a的功能一目了然。編碼時(shí)應(yīng)盡量將前端代碼(HTML/CSS/JavaScript)與應(yīng)用程序的服務(wù)端規(guī)則分開(kāi),或者你可以使用遵循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),保證寫(xiě)出的PHP代碼具有可移植性和跨平臺(tái)性。
4. 代碼安全性
優(yōu)秀的PHP代碼應(yīng)該具有安全性。PHP5具有卓越的特性和靈活性,但應(yīng)用程序的安全往往掌握在程序員的手中。作為專(zhuān)業(yè)的PHP開(kāi)發(fā)人員,應(yīng)該對(duì)安全漏洞有一些深入了解,常見(jiàn)的安全漏洞有跨站腳本攻擊(XSS)、跨站請(qǐng)求偽造(CSRF)、代碼注入漏洞和字符編碼漏洞等。使用PHP中的特定功能和函數(shù)(比如mysql_real_escape_string等)可以幫助程序員寫(xiě)出安全的代碼。
5. 添加注釋
代碼注釋是代碼中的重要組成部分,它解釋了函數(shù)運(yùn)行的目的,這種注釋會(huì)在代碼以后的維護(hù)中提供非常有用的幫助。
6. 避免簡(jiǎn)寫(xiě)標(biāo)記
應(yīng)使用完整的起始標(biāo)記,不推薦使用簡(jiǎn)寫(xiě)的起始標(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)隔開(kāi)字符串輸出
字符串連接符(.)可以將單一的字符串傳遞給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)文章
PHP中文URL編解碼(urlencode()rawurlencode()
PHP中對(duì)于URL進(jìn)行編碼,可以使用 urlencode() 或者 rawurlencode(),二者的區(qū)別是前者把空格編碼為 '+',而后者把空格編碼為 '%20',不過(guò)應(yīng)該注意的是,在編碼時(shí)應(yīng)該只對(duì)部分URL編碼,否則URL中的冒號(hào)和反斜杠也會(huì)被轉(zhuǎn)義。2010-07-07php+mysql實(shí)現(xiàn)的無(wú)限分類(lèi)方法類(lèi)定義與使用示例
這篇文章主要介紹了php+mysql實(shí)現(xiàn)的無(wú)限分類(lèi)方法類(lèi)定義與使用,結(jié)合實(shí)例形式分析了php+mysql無(wú)限分類(lèi)方法類(lèi)基本定義與使用方法,需要的朋友可以參考下2020-05-05PHP實(shí)現(xiàn)的簡(jiǎn)單對(duì)稱(chēng)加密與解密方法實(shí)例小結(jié)
這篇文章主要介紹了PHP實(shí)現(xiàn)的簡(jiǎn)單對(duì)稱(chēng)加密與解密方法,結(jié)合實(shí)例形式總結(jié)了常見(jiàn)的php對(duì)稱(chēng)加密與解密操作方法,需要的朋友可以參考下2017-08-08PHP數(shù)據(jù)的提交與過(guò)濾基本操作實(shí)例詳解
這篇文章主要介紹了PHP數(shù)據(jù)的提交與過(guò)濾基本操作,簡(jiǎn)要說(shuō)明了php數(shù)據(jù)過(guò)濾的基本方法并結(jié)合實(shí)例形式分析了php針對(duì)各種常見(jiàn)類(lèi)型數(shù)據(jù)的過(guò)濾操作使用技巧,需要的朋友可以參考下2016-11-11PHP簡(jiǎn)單實(shí)現(xiàn)DES加密解密的方法
這篇文章主要介紹了PHP簡(jiǎn)單實(shí)現(xiàn)DES加密解密的方法,涉及php中mcrypt_encrypt與mcrypt_decrypt方法的相關(guān)使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2016-07-07