首頁 後端開發 php教程 php優化技巧

php優化技巧

Jun 07, 2018 am 10:44 AM
php程式碼優化 程式碼最佳化

本篇主要介紹php優化技巧,有興趣的朋友參考下,希望對大家有幫助。

程式設計師在編寫程式時,總是想要讓自己的程式佔用資源最小,運作速度更快,程式碼量更少。往往我們在追求這些的同時卻失去了很多東西。最佳化的目的是花最少的代價換來最快的運轉速度與最容易維護的程式碼。以下就幾點PHP的最佳化做下總結:
1、in_array的用法 
      避免使用在大型的陣列上in_array(),同時避免循環中包含超過20個元素的數組使用這個函數。 in_array()會非常消耗資源.對於小的數​​組這種影響可能很小,但是在一個循環中檢查大數組可能會需要好幾秒鐘的時間。如果您確實需要這個功能,請使用isset()來尋找陣列元素。實際上是使用鍵名來查詢鍵值。呼叫isset($array[$var])會比in_array($var,array_keys($array))快得多。
 
2、陣列鍵名
      在PHP中,使用不經單引號所包含的字串作為陣列鍵名是合法的,但是我們不希望如此--鍵名應該總是由單引號包含而避免造成混淆。注意這是使用一個字串,而不是使用變數做鍵名的情況。

例如:

// 不好的写法
$foo = $assoc_array[blah];
// 好的写法
$foo = $assoc_array['blah'];
// 不好的写法
$foo = $assoc_array["$var"];
// 好的写法
$foo = $assoc_array[$var];
登入後複製

3、字串表達       在PHP中以兩種不同的方式表示一個字串-單引號或雙引號。主要的區別在於語法解釋器會對雙引號表示的字串進行變數替換,而不會處理單引號表示的字串。因此您應該總是使用單引號,除非您真的需要在字串中處理變數。這樣,我們可以減少程式運行消耗,因為語法解釋器不需要每次多處理一大堆根本沒有變數的字串。 
      同樣,如果您在函數呼叫中使用了一個字串變數作為參數,您不需要將這個變數包含在引號中。這會導致語法解釋器多做好多無用功。記住,幾乎所有雙引號中的轉義符號對於單引號都是無效的。您需要留意以上的規則,但是有時為了程式碼的可讀性,可以適當的破例。

例如:

// 不好的写法
$str = "This is a really long string with no variables for the parser to find.";
do_stuff("$str");
// 好的写法
$str = 'This is a really long string with no variables for the parser to find.';
do_stuff($str);
// 有时候单引号不是那么合适
$post_url = $phpbb_root_path . 'posting.' . $phpEx . '?mode=' . $mode . '&start=' . $start;
// 双引号有时候能让代码行更集中
$post_url = "{$phpbb_root_path}posting.$phpEx?mode=$mode&start=$start";
登入後複製

4、循環定義中的運算       運算部份如果有運算請務必進行最佳化。因為這部分會在循環中的每一步進行操作:

// 在每次循环中sizeof函数都要被调用
 for ($i = 0; $i < sizeof($post_data); $i++)
 {
  do_something();
 }
// 您可以在循环起始部分对这个不变的量赋值
 for ($i = 0, $size = sizeof($post_data); $i < $size; $i++)
 {
  do_something();
 }
登入後複製

5、分支判斷,switchcase好於ifelse       使用分支語句比用很多ifelse好很多。
 
6、不要濫用@操作符
      不要濫用@操作符,看起來很簡單,但實際上用@比不用@效率差幾倍。
      特別不要在循環中使用@。
 
7、取得時間的方法 
      我們習慣使用time()取得目前時間,但time()終究是函數,不如直接用$_SERVER['REQUEST_TIME ']好一點。
 
8、字串長度判斷
兩寫法:
(1)if(strlen($str) < 5){/ * do something */}
(2)if(isset($str[5])){ /* do something */ }

##總結:以上就是這篇文章的全部內容,希望對大家的學習有所幫助。

相關推薦:

PHP實作二維陣列的矩陣轉置運算的方法及案例

php多張圖片合成一張的方法及案例

PHP開發微信退款功能案例

以上是php優化技巧的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

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

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何做好Java程式碼的重構 如何做好Java程式碼的重構 Jun 15, 2023 pm 09:17 PM

作為世界上最受歡迎的程式語言之一,Java已成為許多企業和開發者的首選語言。然而,程式碼的重構對於保持程式碼品質以及開發效率至關重要。 Java程式碼由於其複雜性,隨著時間的推移可能會變得越來越難以維護。本文將討論如何進行Java程式碼的重構,以提高程式碼品質和可維護性。了解重構的原則Java程式碼重構的目的在於改進程式碼的結構、可讀性和可維護性,而不是簡單的「改變程式碼」。因

程式效能優化有哪些常見的方法? 程式效能優化有哪些常見的方法? May 09, 2024 am 09:57 AM

程式效能最佳化方法包括:演算法最佳化:選擇時間複雜度較低的演算法,減少迴圈和條件語句。資料結構選擇:根據資料存取模式選擇合適的資料結構,例如查找樹和雜湊表。記憶體最佳化:避免建立不必要對象,釋放不再使用的內存,使用記憶體池技術。執行緒優化:識別可並行化任務,優化執行緒同步機制。資料庫最佳化:建立索引加快資料檢索,優化查詢語句,使用快取或NoSQL資料庫提升效能。

PHP高並發處理中的程式碼最佳化技巧 PHP高並發處理中的程式碼最佳化技巧 Aug 11, 2023 pm 12:57 PM

PHP高並發處理中的程式碼最佳化技巧隨著網路的快速發展,高並發處理已經成為了web應用程式開發的重要議題。在PHP開發中,如何優化程式碼以應對高並發請求成為了程式設計師需要解決的難題。本文將介紹一些PHP高並發處理中的程式碼最佳化技巧,並加上程式碼範例進行說明。合理利用快取對於高並發的情況,頻繁存取資料庫會導致系統負載過大,並且存取資料庫的速度相對較慢。因此,我們可

Java Spring Boot Security效能最佳化:讓你的系統飛起來 Java Spring Boot Security效能最佳化:讓你的系統飛起來 Feb 19, 2024 pm 05:27 PM

一、代码优化避免使用过多的安全注解:在Controller和Service中,尽量减少使用@PreAuthorize和@PostAuthorize等注解,这些注解会增加代码的执行时间。优化查询语句:使用springDataJPA时,优化查询语句可以减少数据库的查询时间,从而提高系统性能。缓存安全信息:将一些常用的安全信息缓存起来,可以减少数据库的访问次数,提高系统的响应速度。二、数据库优化使用索引:在经常被查询的表上创建索引,可以显著提高数据库的查询速度。定期清理日志和临时表:定期清理日志和临时

Go語言中的該如何進行程式碼重構 Go語言中的該如何進行程式碼重構 Jun 02, 2023 am 08:31 AM

隨著軟體開發的不斷深入和程式碼的不斷積累,程式碼重構已經成為了現代軟體開發過程中不可避免的一部分。它是一種對系統的既定代碼進行修改,以改善其結構、性能、可讀性或其他相關方面的過程。在本文中,我們將探討如何在Go語言中進行程式碼重構。定義好重構的目標在開始程式碼重構之前,我們應該要訂定一個明確的重構目標。我們需要問自己一些問題,例如這段程式碼有哪些問題?我們要透過重構

程式碼優化在Java框架效能優化中的關鍵技巧 程式碼優化在Java框架效能優化中的關鍵技巧 Jun 03, 2024 pm 01:16 PM

在Java框架效能最佳化中,程式碼最佳化至關重要,包括:1.減少物件創建;2.使用適當的資料結構;3.避免阻塞I/O;4.最佳化字串操作;5.避免反射。透過遵循這些技巧,可以提高框架效能,例如最佳化Hibernate查詢以減少資料庫呼叫次數。

如何進行C++程式碼的重構? 如何進行C++程式碼的重構? Nov 04, 2023 pm 04:40 PM

C++是一種非常強大、靈活且廣泛使用的程式語言,但隨著專案的不斷發展和程式碼的持續相對重用,會存在程式碼品質的下降、可讀性的下降等問題。這時候就需要對程式碼進行重構,以達到更好的程式碼品質和更高的可維護性。本文將介紹如何進行C++程式碼的重構。定義目標在開始重構程式碼之前,你需要先明確需要完成的目標。例如,你可能想改善程式碼的可讀性、減少程式碼的重複、提高程式碼的效能等等。無

Python 效能優化實戰:從基礎到進階 Python 效能優化實戰:從基礎到進階 Feb 20, 2024 pm 12:00 PM

基礎優化使用正確的Python版本:較新版本的python通常效能更高,提供更好的記憶體管理和內建最佳化。選擇合適的庫:使用專門建立的庫而不是從頭開始編寫程式碼,可以節省時間並提高效能。減少循環次數:如果可能,避免使用巢狀循環。使用列表推導和產生器表達式是更有效的替代方案。資料結構最佳化選擇正確的容器:列表適用於隨機訪問,字典適用於快速鍵值查找,元組適用於不可變資料。使用預先分配記憶體:透過預先分配數組或清單的大小,可以減少記憶體分配和碎片整理的開銷。利用Numpy和Pandas:對於科學計算和數據分析,Num

See all articles