搜尋
首頁後端開發php教程高效php的寫法分享
高效php的寫法分享Mar 15, 2018 pm 01:01 PM
php寫法分享

本文主要跟大家分享高效php的寫法,希望能幫助大家。

1. 靜態化 static

靜態變數始於類別的創建,終於類別的消亡;非靜態變數始於類別實例的創建,終於類別實例的消亡。靜態方法可以直接調用,實例方法要透過實例調用,靜態速度會快很多。 靜態方法總是呼叫同一塊內存,不能自動進行銷毀,而是實例化可以銷毀。

2. echo 效率高於 print  

#因為echo沒有回傳值,而print回傳一個整形。 注意,echo大字串的時候,如果沒有做調整就嚴重影響效能。使用開啟apached的mod_deflate進行壓縮或開啟ob_start先將內容放進緩衝區。

3. 在循環之前就設定好循環的最大次數,而不是在循環中;

如for 迴圈中每次都計算。

4. 銷毀變數去釋放內存,特別是大的數組;

##數組和物件在php特別佔內存的,這個由於php的底層的zend引擎引起的,一般來說,PHP數組的內存利用率只有1/10, 也就是說,一個在C語言裡面100M 內存的數組,在PHP裡面就要1G 。特別是在PHP作為後台伺服器的系統中,常常會出現記憶體耗費太大的問題。

#5. requiere_once()比較耗資源;

這是因為requiere_once需要判斷該文件是否被引用過,所以能不用盡量不用。常用require/include方法避免。

6. 在includes和requires中使用絕對路徑。

如果包含相對路徑,PHP會在include_path裡面遍歷尋找檔案。用絕對路徑就會避免此類問題,因此解析作業系統路徑所需的時間會更少。

7. 能用PHP內部字串運算函數的情況下,盡量用他們,不要用正則表達式; 因為其效率高於正則;

#str_replace字元替換比正則替換preg_replace快,但strtr比str_replace又快1/4 ;

另外不要做無謂的替換即使沒有替換,str_replace 也會為其參數分配記憶體。很慢!解決方法:用 strpos 先查找(非常快),看是否需要替換,如果需要,再替換。效率:- 如果需要替換:效率幾乎相等,差異在 0.1% 左右。如果不需要替換:用 strpos 快 200%。

8. #最好不用@,用@掩蓋錯誤會降低腳本運行速度;

使用@實際上後台有很多操作。用@比起不用@,效率差距:3 倍。特別不要在循環中使用@,在 5 次循環的測試中,即使是先用 error_reporting(0) 關掉錯誤,在循環完成後再打開,都比用@快。

9.#$row['id']比$row[id]速度快7倍; 建議養成陣列鍵加引號的習慣;

#10.在迴圈裡別用函數

例如For($x=0; $x

11. 建立一個未宣告的局部變數要比一個已經定義過的局部變數慢9-10倍

12. 單引號取代雙引號來包含字串

13. Apache解析一個PHP腳本的時間要比解析一個靜態HTML頁面慢2至10倍。

盡量多用靜態HTML頁面,少用腳本。

14. ##不要隨便就複製變數

有時候為了讓PHP 程式碼更整潔,一些PHP 新手(包括我)會把預先定義好的變數複製到一個名字比較短的變數中,其實這樣做的結果是增加了一倍的記憶體消耗,只會讓程式更加慢。

15. #使用選擇分支語句

switch case好於使用多個if,else if語句,且程式碼更容易閱讀和維護。

16. #盡量的少進行檔案操作,雖然PHP的檔案操作效率也不低的;

在可以用file_get_contents取代file、fopen、feof、fgets

17. 盡可能的使用PHP內部函數

18. foreach效率更高,盡量用foreach取代while和for迴圈;

19. 循環內部不要宣告變量,尤其是大變數:物件

20. 對global變量,應該用完就unset()掉;

21. 使用++$i遞增

#$i++會比++$i慢一些。這種差異是PHP特有的,,並不適用於其他語言。後置遞增實際上會產生一個臨時變量,這個臨時變量隨後被遞增。而前置遞增直接在原值上遞增。這是最優化處理的一種,正如Zend的PHP優化器所做的那樣。

相關推薦:

6個建立Web應用程式的高效PHP框架

#學習PHP精粹,編寫高效PHP程式碼之性能_PHP教程

#學習PHP精粹,編寫高效PHP程式碼之自動測試_PHP教程#

以上是高效php的寫法分享的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
php怎么把负数转为正整数php怎么把负数转为正整数Apr 19, 2022 pm 08:59 PM

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

php怎么实现几秒后执行一个函数php怎么实现几秒后执行一个函数Apr 24, 2022 pm 01:12 PM

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php怎么除以100保留两位小数php怎么除以100保留两位小数Apr 22, 2022 pm 06:23 PM

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

php怎么根据年月日判断是一年的第几天php怎么根据年月日判断是一年的第几天Apr 22, 2022 pm 05:02 PM

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

php字符串有没有下标php字符串有没有下标Apr 24, 2022 am 11:49 AM

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

php怎么判断有没有小数点php怎么判断有没有小数点Apr 20, 2022 pm 08:12 PM

php判断有没有小数点的方法:1、使用“strpos(数字字符串,'.')”语法,如果返回小数点在字符串中第一次出现的位置,则有小数点;2、使用“strrpos(数字字符串,'.')”语句,如果返回小数点在字符串中最后一次出现的位置,则有。

php怎么替换nbsp空格符php怎么替换nbsp空格符Apr 24, 2022 pm 02:55 PM

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\&nbsp\;||\xc2\xa0)/","其他字符",$str)”语句。

php怎么读取字符串后几个字符php怎么读取字符串后几个字符Apr 22, 2022 pm 08:31 PM

在php中,可以使用substr()函数来读取字符串后几个字符,只需要将该函数的第二个参数设置为负值,第三个参数省略即可;语法为“substr(字符串,-n)”,表示读取从字符串结尾处向前数第n个字符开始,直到字符串结尾的全部字符。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
1 個月前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境