中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

十大你需要在PHP中避免的坑

1. 不要使用 mysql_ 類函數(shù)

創(chuàng)新互聯(lián)建站專注于遜克網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供遜克營銷型網(wǎng)站建設(shè),遜克網(wǎng)站制作、遜克網(wǎng)頁設(shè)計(jì)、遜克網(wǎng)站官網(wǎng)定制、微信小程序定制開發(fā)服務(wù),打造遜克網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供遜克網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。

終于,你不用再看到建議不要使用 mysql_ 函數(shù)的提示了。因?yàn)?PHP 7 從核心上完全移除了它們,這意味著請你移步至更好的 mysqli_ 類函數(shù),或者更靈活的 PDO 層。

2. 不要寫無用的代碼

這看上去是個(gè)無腦建議,但是隨著 PHP7 速度的提升掩蓋了一些問題使它顯得日趨重要。不要僅僅因切到 PHP7 讓網(wǎng)站速度變得快點(diǎn),你就沾沾自喜了。

想理解速度的重要性和如何做的更好,去看看我們這篇文章 初學(xué)者加速優(yōu)化指南。

作為開發(fā)者,應(yīng)該確保按需加載腳本,可能時(shí)再組合,編寫高效的數(shù)據(jù)庫查詢語句,如果可能的話 使用緩存 等等。

3. 不要在文件末尾使用 PHP 閉合標(biāo)簽

如果你隨便看看,就會發(fā)現(xiàn)大部分 WordPress 核心代碼文件結(jié)尾都省略了 PHP 閉合標(biāo)簽。事實(shí)上,Zend 框架尤為明顯地 禁止了閉合標(biāo)簽。它并非 PHP 所必須,在文件結(jié)尾處省略它,可確保結(jié)尾無額外空白。

4. 如非必須不要引用傳參

我個(gè)人非常不喜歡引用傳參。我當(dāng)然知道在某些場合下它很有用,但是多數(shù)場合下,它會使得代碼難以理解,難以遵循,難以預(yù)測結(jié)果。

人們認(rèn)為引用可以使它們的代碼更快,不過正如 可敬的 PHP 程序員 的這篇文章所指出的,事實(shí)并非如此。

PHP 內(nèi)置的 shuffle() 或者 sort() 函數(shù),就是糟糕的引用傳參案例。 它修改了原數(shù)組而不是返回一個(gè)打亂的或者排好序的數(shù)組,這是完全違背了我們意愿的。

5. 不要在循環(huán)里使用查詢

在循環(huán)中使用數(shù)據(jù)庫查詢時(shí)最糟糕的。他會給系統(tǒng)帶來不必要的壓力,并且很有可能,你可以在循環(huán)外使用查詢而更快的得到相同的結(jié)果。當(dāng)我碰到必須這樣用的場景時(shí),我通常會通過分成兩個(gè)查詢來構(gòu)造一個(gè)數(shù)組的方式來解決。然后循環(huán)數(shù)組而無需循環(huán)查詢。

由于 WordPress 的運(yùn)行方式,這樣做可能會有些例外。 get_post_meta() 將從數(shù)據(jù)庫獲取一個(gè)元數(shù)據(jù),如果您正在循環(huán)訪問特定文章的元數(shù)據(jù),則可以在循環(huán)中使用它。這是因?yàn)楫?dāng)你第一次使用它的時(shí)候,WordPress 實(shí)際上取得了所有的元數(shù)據(jù)并緩存了起來。 之后的調(diào)用實(shí)際上是調(diào)用緩存數(shù)據(jù)而不是調(diào)用數(shù)據(jù)庫。

解決這些問題的最好辦法是閱讀函數(shù)文檔并且使用一些類似 查詢監(jiān)聽器 的東西。

6. 不要在 SQL 查詢中使用 *

好吧,這更像是一個(gè) MySQL 的問題,但我們更傾向于在代碼中編寫 SQL 語句,所以我說這是個(gè)公平的游戲。不管什么情況下,如果你能避免使用通配符,那就不要使用,尤其是當(dāng)你的數(shù)據(jù)庫有很多字段的時(shí)候。

明確指定你需要的字段,并且只檢索這些字段。這有助于節(jié)省內(nèi)存,保護(hù)數(shù)據(jù),并且能讓事情變得更加清晰明白。

在 SQL 方面,盡可能的了解你可用的函數(shù)并測試速度。 當(dāng)計(jì)算平均數(shù),求和以及計(jì)算相似的數(shù)字的時(shí)候,使用 SQL 內(nèi)置函數(shù)而不是 PHP 的函數(shù)。 如果你不確定一個(gè)查詢的速度快慢,測試一下它并和其他做法進(jìn)行比較,選出最好的那一種。

7. 不要信任用戶的輸入

信任用戶輸入并不明智。對于用戶輸入,總是需要過濾,殺毒,轉(zhuǎn)義,校驗(yàn)以及使用回退。 用戶輸入存在三個(gè)問題:我們開發(fā)者不可能考慮到所有可能性,經(jīng)常出錯,存心的惡意輸入。

一個(gè)經(jīng)過深思熟慮的系統(tǒng)可以防止所有的這些問題。 在使用數(shù)據(jù)庫時(shí),確保使用內(nèi)置的函數(shù),如 filter_var(),來檢查合法性,進(jìn)行轉(zhuǎn)義,和其他能做的事。

WordPress 有一堆函數(shù)可以幫到你??梢郧埔磺七@篇文章來了解更多信息 Validating, escaping and sanitising user data 。

8. 不要自作聰明

你的目標(biāo)就是寫出能清晰的表達(dá)你的意愿的優(yōu)雅代碼。可能你通過縮短變量名,使用多層級三目邏輯運(yùn)算和其他小聰明讓每個(gè)頁面節(jié)約了0.01秒的加載時(shí)間,但是和因此種下你和你的團(tuán)隊(duì)頭疼不已難以維護(hù)的惡果相比,得不償失。

恰當(dāng)?shù)拿兞浚院啙嵜髁说姆绞綄懗龃a文檔。更好的做法就是,使用標(biāo)準(zhǔn)化的面向?qū)ο蟮拇a風(fēng)格,或多或少的編寫文檔,而非使用大量的內(nèi)聯(lián)代碼注釋。

9. 不要重復(fù)造輪子

PHP 已經(jīng)存在有一段時(shí)間了,網(wǎng)站開發(fā)存在的時(shí)間甚至更久遠(yuǎn)。 無論你做過啥,前人肯定已經(jīng)做過。不要害怕依賴別人的支持, Github, Composer , Packagist 都是你的良師益友。

從日志到顏色處理器,從分析器到單元測試框架,從 Mailchimp APIs 到 Twitter Bootstrap,所有的東西只需要按一個(gè)按鈕(或者敲一個(gè)命令)就能用,去使用它們吧!

10. 不要忽視其他語言

如果你是個(gè) PHPer,現(xiàn)在的標(biāo)準(zhǔn)做法是至少了解 HTML,CSS,Javascript 和 MySQL。 當(dāng)你能很好的處理這些語言的時(shí)候,就是再去學(xué)習(xí)一遍 Javascript 的時(shí)候。Javascript 不是 jQuery。你應(yīng)該學(xué)習(xí) Javascript 來有效的利用 jQuery。

我也建議學(xué)習(xí) PHP 面向?qū)ο蟮囊磺小K莻€(gè)救星,能讓你的代碼在數(shù)量級上得到提升。它也能打開類似 C# 和 Java 語言的大門,在你有了這些經(jīng)驗(yàn)后,它們能讓你更容易明白面向?qū)ο缶幊蹋∣OP)。

通過學(xué)習(xí)包管理,構(gòu)建腳本,Coffeescript, LESS, SASS, YAML, 模板引擎以及其他有用的工具來擴(kuò)展知識面。我也由衷的推薦看看其他框架,尤其是 Laravel 。

當(dāng)你這些都做得夠好了的時(shí)候,考慮下 Ruby, Ruby on Rails 以及 Android,iPhone,Windows Phone 的 app 開發(fā)? 你可能認(rèn)為這些毫無意義,因?yàn)樗鼈儾辉谀愕氖孢m區(qū)和工作需求之內(nèi),但它們恰恰是重點(diǎn)。 每種語言都有一些有用的教學(xué)知識和一些無害的額外知識。所有頂尖的PHP開發(fā)人員都了解其他編程語言,這不是偶然的!

感謝大家的閱讀,希望大家收益多多。

本文轉(zhuǎn)載于:https://www.cnblogs.com/summerblue/p/8778819.html

推薦教程:《php教程》

當(dāng)前名稱:十大你需要在PHP中避免的坑
文章URL:http://www.rwnh.cn/article40/cjhpeo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序網(wǎng)站營銷、虛擬主機(jī)網(wǎng)站導(dǎo)航、軟件開發(fā)商城網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計(jì)公司
乌什县| 法库县| 四子王旗| 观塘区| 平江县| 尼勒克县| 桂东县| 嘉祥县| 德庆县| 乌兰县| 南陵县| 永济市| 连云港市| 无为县| 柳河县| 衢州市| 永福县| 赤城县| 丽江市| 昔阳县| 仙游县| 江门市| 拉萨市| 蓬安县| 长寿区| 新竹县| 深水埗区| 凤山市| 确山县| 绍兴县| 台中县| 大英县| 托克托县| 城口县| 中宁县| 镇沅| 前郭尔| 二连浩特市| 昭苏县| 镇康县| 崇文区|