注意!PHP 7中不要做的10件事

來源:本網整理

1:單引號代替雙引號,雙引號會去找變量。2:方法定義為static,性能提升4倍。3:$arr['id']的性能是$arr[id]的7倍。4:echo性能快,盡量使用echo$a,$b,$c而非echo$a.$b.$c。5:循環之前確定循環次數,盡量用foreach。6:注銷不使用的變量,節省內存。7:盡量不使用魔法函數:_get、_set等。8:require_once()會檢查是否載入,消耗內存。9:include文件時使用絕對路徑,省去查找的時間。10:腳本開始執行時間$_SERVER[‘REQUEST_TIME’]要好于time()。11:正則效率低,用函數代替。12:str_replace函數比preg_replace函數快,但strtr函數的效率是str_replace函數的四倍。13:接收客串的效率比接收數組的效率高。14:switch case好于多個if else。15:用@屏蔽錯誤消息的方法很低效。16:打開apache的mod_deflate模塊,可以提高網頁的瀏覽速度。17:數據庫連接當使用完畢時應關掉,不要用長連接。18:錯誤消息代價昂貴。19:在方法中遞增局部變量,速度是最快的。幾乎與在函數中調用局部變量的速度相當。20:遞增一個全局變量要比遞增一個局部變量慢2倍。21:遞增一個對象屬性(如:$this->prop+)要比遞增一個局部變量慢3倍。22:遞增一個未預定義的局部變量要比遞增一個預定義的局部變量慢9至10倍。23:僅定義一個局部變量而沒在函數中調用它,同樣會減慢速度(其程度相當于遞增一個局部變量)。PHP大概會檢查看是否存在全局變量。24:方法調用看來與類中定義的方法的數量無關,因為我(在測試方法之前和之后都)添加了10個方法,但性能上沒有變化。25:派生類中的方法運行起來要快于在基類中定義的同樣的方法。26:調用帶有一個參數的空函數,其花費的時間相當于執行7至8次的局部變量遞增操作。類似的方法調用所花費的時間接近于15次的局部變量遞增操作。27:Apache解析一個PHP腳本的時間要比解析一個靜態HTML頁面慢2至10倍。盡量多用靜態HTML頁面,少用腳本。28:盡量做緩存,可使用memcached。memcached是一款高性能的內存對象緩存系統,可用來加速動態Web應用程序,減輕數據庫負載。對運算碼(OP code)的緩存很有用,使得腳本不必為每個請求做重新編譯。29:當操作字符串并需要檢驗其長度是否滿足某種要求時,你想當然地會使用strlen()函數。此函數執行起來相當快,因為它不做任何計算,只返回在zval 結構(C的內置數據結構,用于存儲PHP變量)中存儲的已知字符串長度。但是,由于strlen()是函數,多多少少會有些慢,因為函數調用會經過諸多步驟,如字母小寫化(譯注:指函數名小寫化,PHP不區分函數名大小寫)、哈希查找,會跟隨被調用的函數一起執行。在某些情況下,你可以使用isset()技巧加速執行你的代碼。30:當執行變量$i的遞增或遞減時,$i+會比+$i慢一些。這種差異是PHP特有的,并不適用于其他語言,所以請不要修改你的C或Java代碼并指望它們能立即變快,沒用的。i更快是因為它只需要3條指令(opcodes),$i+則需要4條指令。后置遞增實際上會產生一個臨時變量,這個臨時變量隨后被遞增。而前置遞增直接在原值上遞增。這是最優化處理的一種,正如Zend的PHP優化器所作的那樣。牢記這個優化處理不失為一個好主意,因為并不是所有的指令優化器都會做同樣的優化處理,并且存在大量沒有裝配指令優化器的互聯網服務提供商(ISPs)和服務器。31:并不是事必面向對象(OOP),面向對象往往開銷很大,每個方法和對象調用都會消耗很多內存。32:盡量采用大量的PHP內置函數。33:如果在代碼中存在大量耗時的函數,你可以考慮用C擴展的方式實現它們。34:mod_zip可作為Apache模塊,用來即時壓縮你的數據,并可讓數據傳輸量降低80%。35:在可以用file_get_contents替代file、fopen、feof、fgets等系列方法的情況下,盡量用 file_get_contents,因為他的效率高得多!但是要注意file_get_contents在打開一個URL文件時候的PHP版本問題。36:盡量的少進行文件操作,雖然PHP的文件操作效率也不低的。37:優化Select SQL語句,在可能的情況下盡量少的進行Insert、Update操作(在update上,我被惡批過)。38:循環內部不要聲明變量,尤其是大變量:對象。39:多維數組盡量不要循環嵌套賦值。40:在可以用PHP內部字符串操作函數的情況下,不要用正則表達式。41:foreach效率更高,盡量用foreach代替while和for循環。42:用i+1代替i=i+1。符合c/c++的習慣,效率還高。43:對global變量,應該用完就unset()掉。展開www.13333515.buzz防采集請勿采集本網。

s">

注意!PHP 7中不要做的10件事

投稿:lijiao 字體:[增加 減小] 類型:轉載 時間:2016-09-18 我要評論 這篇文章主要為大家詳細介紹了PHP 7中不要做的10件事,具有一定的參考價值,感興趣的小伙伴們可以參考一下 ">

切記,在PHP 7中不要做的10件事

為什么是10點注意事項?我把我知道的幾點告訴你吧(家用軟水機): 1、最重要的一點,如果軟化劑加的是鈉鹽,最好不要長期直接飲用,長期直接飲用最好加鉀鹽。因為鈉會增加新陳代謝負擔。但鉀鹽

1. 不要使用 mysql_ 函數 

4.(1)在交談中不要涉及對方的“隱私區”和“敏感區”,以免引起不快。(2)在長輩、師長面前不可以指手畫腳。(3)在交流中既不要過分謙卑,也不要趾高氣揚,目空一切。5.謙虛謹慎、機智應變、揚長避短、顯示

這一天終于來了,從此你不僅僅“不應該”使用mysql_函數。PHP 7 已經把它們從核心中全部移除了,也就是說你需要遷移到好得多的mysqli_函數,或者更靈活的 PDO 實現。

好心情和好身體,去之前的一個星期不要太勞累,把身體養好點,另外,一般身體平時沒什么大礙的朋友,比如沒有心腦血管疾病、心臟病之類的,對于高原反應是很小的,不要太擔心,放松心情比喝什么紅景天有用

 

找正規的培訓機構去學習!北京附近學習PHP比較好的建議去兄弟連

2. 不要編寫垃圾代碼 

10.發現小黃花—擔心小黃花—守護小黃花—共賞小黃花—珍藏小黃花 11.(1)擬人,比喻,形象寫出了小黃花開放時動態的美,表現了小黃花聽到板凳狗的鼓勵后高興、喜悅的心理。(2)一根”“兩條”

這一條可能易于理解,但是會變得越來越重要,因為 PHP 7 的速度提升可能會隱藏你的一些問題。不要僅僅滿足于你的站點速度,因為遷移到 PHP 7 才讓它變快。 

為了理解速度有多重要,以及如何把事情做得更好,請看一看我們的文章速度優化入門指南。 

作為一名開發者,你應該總是確保按需加載腳本,盡可能連接它們,編寫高效的數據庫查詢,盡可能使用緩存,以及其它。 

3. 不要在文件末尾使用 PHP 閉合標簽 

你可以看一看,當一個文件以 PHP 代碼結尾時,WordPress 多數核心代碼都把末尾的 PHP 標簽去掉了。實際上,Zend 框架特別禁止了它。PHP 并不需要文件末尾的閉合標簽,并且我們可以通過去掉它來保證不會在后面添加任何的空白字符。 

4. 不要做不必要的引用傳遞 

我個人不喜歡引用傳遞。我知道有時候它很實用,但是其它情況下它使代碼變得難懂,并且更難預測結果。 

據說一些人認為它使代碼運行更快,但是根據一些 PHP 高級程序員所說,這并不正確。 

說明引用為什么不好的一個例子是,PHP 內建了shuffle()和sort()。它們修改原始數組,而不是返回處理后的數組,這很不合邏輯。 

5. 不要在循環中執行查詢 

在循環中執行查詢非常浪費。它給你的系統施加不必要的壓力,并且可能能夠在循環外部更快獲得相同結果。當我遇到需要這樣的情況時,我通常會使用兩個分離的查詢來解決問題,我會使用它們來構建數據數組。之后我會遍歷數組,并不需要在這個過程中執行查詢。 

由于 WordPress 適用于這里,它可能有一些例外。雖然get_post_meta() 會從數據庫獲取大量數據,如果你正在遍歷某個特殊博文的元數據你可以在循環中使用它。這是因為當你第一次調用它的時候,WordPress實際上會獲取所有元數據并緩存它們。后續的調用使用這些緩存數據,沒有數據庫的調用。 

弄懂這些的最佳方式是閱讀函數文檔,以及使用類似 Query Monitor 的工具。 

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

當然,這個更像 MySQL 的問題,但是我們習慣在 PHP 中編寫 SQL 代碼,所以都差不多。無論如何,如果可以避免的話,不要在 SQL 查詢里使用通配符,尤其是數據庫有很多列的時候。 

你應該明確指定需要哪些行,并且僅僅獲取它們。這有助于減少所用資源,保護數據,以及讓事情變得盡可能清晰。 

對于 SQL,你需要了解所有可用的函數,并且盡可能測試其速度。在計算均值、求和或計算類似數值時,要使用 SQL 函數而不是 PHP 函數。如果你不確定某個查詢的速度,測試它并且嘗試一些其它的編譯 — 之后使用最好的那個。 

7. 不要信任用戶輸入 

信任用戶輸入是不明智的。始終校驗、過濾、轉義、檢查并留好退路。用戶數據存在三個問題:我們開發者并沒有考慮每種可能性,它通常不正確,以及它可能是蓄意破壞。 

經過周密考慮的系統可以防護這些威脅。要確保使用類似filter_var()的內建函數檢查適當的值,以及在處理數據庫時轉義(或預編譯)。 

WordPress 擁有一些函數來解決問題。詳見文章校驗、轉義和過濾用戶數據。 

8. 不要故作聰明 

你的目標應該是編寫優雅的代碼,來更清晰地表達你的意圖。你可能能夠通過將任何東西縮短為一個單詞的變量,使用多層的三元邏輯,以及其它手段,從每個頁面中優化 0.01 秒。但這只會給你和你周圍的人產生大麻煩。 

合理命名變量,為代碼編寫文檔,優先選擇清晰而不是簡潔。甚至還可以更好,使用標準的面向對象代碼,它本身或多或少就是文檔,不需要一大堆內聯數值。 

9. 不要重新發明輪子 

PHP 到現在為止有很長時間了,網站被造出來的時間更長。很可能無論你需要造出什么,一些人之前早就造出來了。不要害怕向他人尋求支持,Github是你的好朋友,Composer也是,Packagist也是。 

從日志工具到調色工具,從性能分析器到單元測試框架,從 Mailchimp API 到 Twitter Bootstrap,每個東西都可以通過按下按鍵(或者敲下命令)來獲取,使用它們吧! 

10. 不要忽略其它語言 

如果你是個 PHP 程序員,現在有個好機會去至少了解 HTML、CSS、JavaScript 和 MySQL。當你能夠更好地處理這些語言時,就是重新學習 JavaScript 的時機了。JavaScript 并不是 jQuery,你應該合理地學習 JavaScript 來更高效地使用它。 

我也打算向你推薦學習面向對象的 PHP,它可以節省時間,并且在代碼規模更大時會變得更好。對于類似 C# 和 Java 的語言,在你了解 OOP 之后,它們也更易于理解。 

通過了解包管理器、構建腳本、CoffeeScript、LESS、SASS、YAML 、腳本引擎和其它強大的工具來擴展你的知識面。我強烈向你推薦看一看其它框架,尤其是 Laravel。 

當你使用它們出色完成任務時,學習 Ruby、RoR、Android、iPhone 和 Windows Phone 應用開發如何?你可能會認為這毫無意義,因為它們在你的舒適區和工作所需范圍之外,但是這就是它們的意義。每種語言都有一些要學習的實用的東西,以及從沒碰到的新知識。所有 PHP 頂級開發者都懂得很多其它編程語言,這并非偶然。

 以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持突襲網。

七月十四,百鬼夜行。以我經驗來說,其實十四才是最不舒服的時候,包括昨晚。首先,我是相信有鬼的…但除了唯一那一次十四的湊巧,我竟從來沒有準確目擊過一位兄弟,無論多么可怕的境況,包括別人清晰看到她在我周圍我依舊看不到。其實emmmm這個回答挺無趣的,講起來沒波折,只是長見識了而已。農歷七月“鬼節”民俗禁忌:避免帶紅繩、鈴鐺、風鈴等招鬼物,盡量避免出門。若遇到鬼壓身、鬼打墻等靈異事件,不要慌張,集中一切注意力,睜開眼睛內容來自www.13333515.buzz請勿采集。

免責聲明 - 關于我們 - 聯系我們 - 廣告聯系 - 友情鏈接 - 幫助中心 - 頻道導航
Copyright © 2017 www.13333515.buzz All Rights Reserved
3排列五开奖结果