搜尋
首頁後端開發php教程php程式碼優化小知識分享

php程式碼優化小知識分享

Mar 05, 2018 pm 02:00 PM
php分享知識

本文主要跟大家分享php程式碼優化小知識,文章總結了40多個關於優化程式碼的知識點,希望能幫助大家。

1. 不要隨便就複製變數

BAD:
$description = $_POST['description'];
echo $description;
GOOD:
echo $_POST['description'];

2. 對字串使用單引號
3. 使用 switch/case 取代 if/else
4. 開啟apache的mod_deflate模組,可以提高網頁的瀏覽速度。
5. 資料庫連線當使用完畢時應關掉,不要用長連接。
最佳化php代
1.如果一個方法能被靜態,那就宣告他為靜態的,速度可提高1/4;
2.echo的效率高於print,因為echo沒有回傳值,print返回一個整數;
3.在循環之前設定循環的最大次數,而非在在循環中; 最好運用foreach代替
4.銷毀變數去釋放內存,特別是大的數組; unset()、null
5.避免使用像__get, __set, __autoload等魔術方法;
6.require_once(),include_once()比較耗資源,require()執行效率比較高;*
7.在includes和requires中使用絕對路徑,這樣在分析路徑花的時間更少;
8.如果你需要得sexinsex到腳本執行時的時間,$_SERVER['REQUSET_TIME']優於time( );
9.能使用字元處理函數的,盡量用他們,因為效率高於正則;
10.str_replace字元替換比正則替換preg_replace快,但strtr比str_replace又快1/4;
11.如果一個函數既能接受數組又能接受簡單字符做為參數,例如字符替換,並且參數列表不是太長,可以考慮多用一些簡潔的替換語句,一次只替換一個字符,
而不是接受數組做為查找和替換參數。大事化小,1+1>2;
12.用@掩蓋錯誤會降低腳本運行速度;
13.$row['id']比$row[id]速度快7倍,建議養成數組鍵加引號的習慣;
14.錯誤訊息很有用;
15.在迴圈裡別用函數,例如For($x=0; $x 16.在方法裡建立局部變數速度最快,97xxoo幾乎和在方法裡調用局部變數一樣快;
17.建立一個全域變數要比局部變數慢2倍;
18.建立一個物件屬性(類別裡面的變數)例如($this->prop++)比局部變數慢3倍;
19.建立一個未宣告的局部變數要比一個初始化的局部變數慢9-10倍;
20.宣告一個未被任何一個函數使用過的全域變數也會使效能降低(和宣告相同數量的局部變數一樣),PHP可能去檢查這個全域變數是否存在;
21.方法的效能和在一個類別裡面定義的方法的數目沒有關係,因為我添加10個或多個方法到測試的類別裡面(這些方法在測試方法的前後)後性能沒什麼差異;
22.在子類別裡方法的性能優於在基類中;
23.只調用一個參數並且函數體為空的函數運行花費的時間等於7-8次$localvar++運算,而一個類似的方法(類別裡的函數)運行等於大約15次$localvar++運算;
24.定義字串用單引號要強過雙引號
25.當輸出字串時用逗號代替點分割更快。注意:這只對echo起作用,這個函數能接受一些字串作為參數;
26.在apache伺服器裡一個php腳本頁面比對應的HTML靜態頁面產生至少要多花2-10倍的時間,建議多用些靜態HTML頁面和少量的腳步;
27.除非你的安裝了緩存,不然你的php腳本每次被訪問都需要被重編譯。建議安裝個php快取程序,這樣通過去除一些重複的編譯來很明顯的提高你20-100%的性能;
28.建議用memcached,高性能的分佈式內存對象緩存系統,提高動態網絡應用程式效能,減輕資料庫的負擔;
29.使用ip2long()和long2ip()函數把IP位址轉成整數存放進資料庫而非字元型。這幾乎能降低1/4的儲存空間。同時可以輕鬆地對位址進行排序和快速查找;
30.使用checkdnsrr()透過網域存在性來確認部分email位址的有效性,這個內建函數能保證每一個的網域對應一個IP位址;
31.如果你在使用php5和mysql4.1以上的版本,考慮使用mysql_*的改良函數mysqli_*;
32.試著喜歡使用三元運算子(?:);
33.在你想在徹底重做你的專案前,看看PEAR有沒有你需要的。 PEAR是個龐大的資源庫,很多php開發者都知道;
34.使用highlight_file()能自動列印一份很好格式化的頁面原始碼的副本;
35.使用error_reporting(0)函數來預防潛在的敏感資訊顯示給使用者。理想的錯誤報告應該完全禁用在php.ini檔案裡。可是如果你在用一個共享的虛擬主機,
php.ini你不能修改,那麼你最好添加error_reporting(0)函數,放在每個腳本文件的第一行(或用require_once()來加載)這能有效的保護敏感的SQL查詢和路徑在出錯時不被顯示;
36.使用gzcompress() 和gzuncompress()對容量大的字串進行壓縮(解壓縮)在存進(取出)資料庫時。這種內建的函數使用gzip演算法能壓縮到90%;
37.透過參數變數位址得引用來使一個函數有多個回傳值。你可以在變數前面加個「&」來表示按位址傳遞而非按值傳遞;
38.Fully understand “magic quotes” and the dangers of SQL injection. I'm hoping that most developers reading this are already familiar with SQL injection.
 However, I list it here beca it's absmouse. ve never heard the term before, spend the entire rest of the day googling 
and reading.
39.使用strlen()因為要呼叫一些其他操作例如lowercase和hash表查詢所以速度不是太好,我們可以用isset()來實現相似的功能,isset()速度優於strlen();
40.關於遞增$i++或遞減$i--會比++$i或--$i略慢,這是PHP特有的並不適合其它語言
42.foreach循環取代while或for *
43.大檔案用file_get_contents(),小檔案用fopen(),fread()
44.正常寫法比封裝方法和類別要快一些
VLD工具查看Opcode
Xdebug PHP程式調試器用來跟踪,調試和分析PHP程式的運行狀況
WinCacheGrind調試工具查看PHP調用次數及時間等

相關推薦:

php程式碼最佳化:php foreach與for速度比較測試實例

##PHP程式碼最佳化總結

php程式碼最佳化及php相關問題摘要#

以上是php程式碼優化小知識分享的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
PHP的目的:構建動態網站PHP的目的:構建動態網站Apr 15, 2025 am 12:18 AM

PHP用於構建動態網站,其核心功能包括:1.生成動態內容,通過與數據庫對接實時生成網頁;2.處理用戶交互和表單提交,驗證輸入並響應操作;3.管理會話和用戶認證,提供個性化體驗;4.優化性能和遵循最佳實踐,提升網站效率和安全性。

PHP:處理數據庫和服務器端邏輯PHP:處理數據庫和服務器端邏輯Apr 15, 2025 am 12:15 AM

PHP在數據庫操作和服務器端邏輯處理中使用MySQLi和PDO擴展進行數據庫交互,並通過會話管理等功能處理服務器端邏輯。 1)使用MySQLi或PDO連接數據庫,執行SQL查詢。 2)通過會話管理等功能處理HTTP請求和用戶狀態。 3)使用事務確保數據庫操作的原子性。 4)防止SQL注入,使用異常處理和關閉連接來調試。 5)通過索引和緩存優化性能,編寫可讀性高的代碼並進行錯誤處理。

您如何防止PHP中的SQL注入? (準備的陳述,PDO)您如何防止PHP中的SQL注入? (準備的陳述,PDO)Apr 15, 2025 am 12:15 AM

在PHP中使用預處理語句和PDO可以有效防範SQL注入攻擊。 1)使用PDO連接數據庫並設置錯誤模式。 2)通過prepare方法創建預處理語句,使用佔位符和execute方法傳遞數據。 3)處理查詢結果並確保代碼的安全性和性能。

PHP和Python:代碼示例和比較PHP和Python:代碼示例和比較Apr 15, 2025 am 12:07 AM

PHP和Python各有優劣,選擇取決於項目需求和個人偏好。 1.PHP適合快速開發和維護大型Web應用。 2.Python在數據科學和機器學習領域佔據主導地位。

PHP行動:現實世界中的示例和應用程序PHP行動:現實世界中的示例和應用程序Apr 14, 2025 am 12:19 AM

PHP在電子商務、內容管理系統和API開發中廣泛應用。 1)電子商務:用於購物車功能和支付處理。 2)內容管理系統:用於動態內容生成和用戶管理。 3)API開發:用於RESTfulAPI開發和API安全性。通過性能優化和最佳實踐,PHP應用的效率和可維護性得以提升。

PHP:輕鬆創建交互式Web內容PHP:輕鬆創建交互式Web內容Apr 14, 2025 am 12:15 AM

PHP可以輕鬆創建互動網頁內容。 1)通過嵌入HTML動態生成內容,根據用戶輸入或數據庫數據實時展示。 2)處理表單提交並生成動態輸出,確保使用htmlspecialchars防XSS。 3)結合MySQL創建用戶註冊系統,使用password_hash和預處理語句增強安全性。掌握這些技巧將提升Web開發效率。

PHP和Python:比較兩種流行的編程語言PHP和Python:比較兩種流行的編程語言Apr 14, 2025 am 12:13 AM

PHP和Python各有優勢,選擇依據項目需求。 1.PHP適合web開發,尤其快速開發和維護網站。 2.Python適用於數據科學、機器學習和人工智能,語法簡潔,適合初學者。

PHP的持久相關性:它還活著嗎?PHP的持久相關性:它還活著嗎?Apr 14, 2025 am 12:12 AM

PHP仍然具有活力,其在現代編程領域中依然佔據重要地位。 1)PHP的簡單易學和強大社區支持使其在Web開發中廣泛應用;2)其靈活性和穩定性使其在處理Web表單、數據庫操作和文件處理等方面表現出色;3)PHP不斷進化和優化,適用於初學者和經驗豐富的開發者。

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.能量晶體解釋及其做什麼(黃色晶體)
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

SublimeText3 英文版

SublimeText3 英文版

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

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境