如何寫(xiě)出好的 PHP 代碼?_PHP教程
編寫(xiě)良好的代碼是一種藝術(shù)。如果一個(gè)程序員遵循一些良好的編程習(xí)慣,那么他就可以成為一個(gè)優(yōu)秀的程序員。實(shí)際上,相對(duì)于你寫(xiě)代碼的時(shí)間,你很可能會(huì)花更多的時(shí)間在代碼維護(hù)上;更不用說(shuō)整個(gè)應(yīng)用程序的維護(hù)。建立良好的編碼習(xí)慣,能夠提高像模塊化這樣的設(shè)計(jì)因素,你的代碼也將更容易理解,因此,維護(hù)起來(lái)更容易、成本更低。而不良的編碼習(xí)慣會(huì)在代碼中存在缺陷,并可能導(dǎo)致代碼很難維護(hù)。
在本文中,我們將探討一些良好的編程習(xí)慣,這將幫助你避免代碼中的缺陷。
1- 編寫(xiě)模塊化代碼
良好的PHP代碼應(yīng)該是模塊化代碼。PHP的面向?qū)ο蟮木幊坦δ苁且恍┨貏e強(qiáng)大的工具,可以把你的應(yīng)用程序分解成函數(shù)或方法。你應(yīng)該盡可能多的從你的應(yīng)用程序的服務(wù)器端分開(kāi)前端的HTML/CSS/JavaScript代碼。你也可以在任何PHP框架上遵循MVC(模型-視圖-控制器)模式。
2- 代碼編寫(xiě)規(guī)范
良好的PHP代碼應(yīng)該有一套完整的代碼編寫(xiě)規(guī)范。通過(guò)對(duì)變量和函數(shù)的命名,統(tǒng)一的方法訪問(wèn)數(shù)據(jù)庫(kù)和對(duì)錯(cuò)誤的處理,以及同樣的代碼縮進(jìn)方式等來(lái)達(dá)到編程規(guī)范,這樣可以使你的代碼更具可讀性。
3- 編寫(xiě)可移植代碼
良好的PHP代碼應(yīng)該是可移植的。你可以使用php的現(xiàn)有功能,如魔術(shù)引號(hào)和短標(biāo)簽。試著了解你的需求,然后通過(guò)適應(yīng)PHP特性來(lái)編寫(xiě)代碼讓代碼獨(dú)立、可移植。
4- 編寫(xiě)安全代碼
良好的PHP代碼應(yīng)該是安全的。PHP5提供了出色的性能和靈活性。但是安全問(wèn)題完全在于開(kāi)發(fā)人員。對(duì)于一個(gè)專業(yè)的PHP開(kāi)發(fā)人員來(lái)說(shuō),深入理解重大安全漏洞是至關(guān)重要的,如:跨站點(diǎn)腳本(XSS)、跨站請(qǐng)求偽造(CSRF)、代碼注入漏洞、字符編碼漏洞。通過(guò)使用PHP的特殊功能和函數(shù),如:mysql_real_escape_string等等,你可以編寫(xiě)出安全的代碼。
5- 代碼注釋
代碼注釋是代碼的重要組成部分。通過(guò)代碼注釋可以知道該變量或函數(shù)是做什么的,這將在今后的代碼維護(hù)中十分有用。
6- 避免短標(biāo)簽
把所有用到短標(biāo)簽的替換成完整的PHP標(biāo)簽。
7- 使用單引號(hào)代替雙引號(hào)
字符串始終使用單引號(hào)代替雙引號(hào),以避免PHP搜索字符串內(nèi)的變量導(dǎo)致的性能下降。
8- 轉(zhuǎn)義字符串輸出
使用ENT_QUOTES作參數(shù)傳遞給htmlspecialchars函數(shù),以確保單引號(hào)(')也轉(zhuǎn)換成HTML實(shí)體,這是一個(gè)好習(xí)慣。
9- 使用逗號(hào)分隔字符串輸出
通過(guò)echo語(yǔ)句輸出使用逗號(hào)(,)分隔的字符串,要比使用字符串連接操作符(.)的性能更好。
10- 輸出前檢查傳來(lái)的值
輸出前檢查傳過(guò)來(lái)的值$_GET['query']。使用isset或empty函數(shù),可以用來(lái)檢查變量是否為null值。
分享:php拷貝構(gòu)造函數(shù)、賦值運(yùn)算符重載對(duì)象的賦值與復(fù)制: 賦值:通過(guò) = 運(yùn)算符重載 User a(10),b; b = a; 復(fù)制:調(diào)用復(fù)制構(gòu)造函數(shù) User b; User a(b); 或者 User a = b;//相當(dāng)于User a(b); 與賦值的區(qū)別,賦值是對(duì)一個(gè)已經(jīng)存在的對(duì)象進(jìn)行賦值(已經(jīng)實(shí)現(xiàn)定義了被賦值的對(duì)象),而復(fù)制是從無(wú)到有建立一個(gè)新的
- PHPNOW安裝Memcached擴(kuò)展方法詳解
- php記錄頁(yè)面代碼執(zhí)行時(shí)間
- PHP中獎(jiǎng)概率的抽獎(jiǎng)算法程序代碼
- apache設(shè)置靜態(tài)文件緩存方法介紹
- php對(duì)圖像的各種處理函數(shù)代碼小結(jié)
- PHP 關(guān)于訪問(wèn)控制的和運(yùn)算符優(yōu)先級(jí)介紹
- 關(guān)于PHP語(yǔ)言構(gòu)造器介紹
- php/js獲取客戶端mac地址的實(shí)現(xiàn)代碼
- php5.5新數(shù)組函數(shù)array_column使用
- PHP preg_match的匹配多國(guó)語(yǔ)言的技巧
- php 中序列化和json使用介紹
- php采集文章中的圖片獲取替換到本地
PHP教程Rss訂閱編程教程搜索
PHP教程推薦
- php筆記之:php函數(shù)range() round()和list()的使用說(shuō)明
- php/js獲取客戶端mac地址的實(shí)現(xiàn)代碼
- header location重定向語(yǔ)句對(duì)頁(yè)面進(jìn)行跳轉(zhuǎn)失敗
- PHP無(wú)法訪問(wèn)遠(yuǎn)程mysql的問(wèn)題分析及解決
- 詳細(xì)解析 PHP 向 MySQL 發(fā)送數(shù)據(jù)過(guò)程
- mongo Table類文件 獲取MongoCursor(游標(biāo))的實(shí)現(xiàn)方法分析
- smarty修改php模板教程
- 為何PHP程序不實(shí)用大型系統(tǒng)
- 解析php中的escape函數(shù)
- 怎樣為Vista/Win08中的IIS7添加PHP支持
- 相關(guān)鏈接:
- 教程說(shuō)明:
PHP教程-如何寫(xiě)出好的 PHP 代碼?
。