PHP高效書寫方式

由于 PHP 代碼書寫的靈活性,每個(gè)人都有自己的書寫習(xí)慣,避免低效的書寫方式秘血,是一個(gè)有追求的程序員的義務(wù)。

  1. 字符串使用單引號(hào)''包裹仔涩。雙引號(hào)會(huì)去查找字符串中的變量粘舟,并解析佩研。
  2. 使用雙引號(hào)帶變量的方式處理字符串鏈接"this is a $string"旬薯,避免使用.操作符鏈接字符串适秩。. 每次鏈接都需要重新分配內(nèi)容空間存儲(chǔ)字符串。
  3. 所有變量使用前必須先定義骤公,獲取未定義的變量效率低下扬跋。
  4. 遞增局部變量的速度最快。比全局變量快 2 倍洒试,比類屬性快 3 倍彪见,比未定義的變量快 9 倍。
  5. 盡可能靜態(tài)化函數(shù)捕犬,靜態(tài)化的函數(shù)調(diào)用性能遠(yuǎn)高于普通函數(shù)酵镜。
  6. $data['id'] 的速度比 $data[id] 的速度快得多。
  7. 在 for 循環(huán)之前確定最大循環(huán)次數(shù)垢粮, 不要每次循環(huán)時(shí)計(jì)算最大值靠粪。
  8. 及時(shí)注銷不使用的大數(shù)據(jù)變量,以便釋放內(nèi)存昔善。
  9. 盡量避免使用__get畔乙、__set__autoload等魔術(shù)方法的使用返咱。
  10. includerequire 文件時(shí)盡量使用絕對(duì)路徑评姨,相對(duì)路徑最終都是解析成絕對(duì)路徑楞艾,并且當(dāng) includerequire 文件時(shí)沒有給出目錄,則程序會(huì)去 include_path 中查找文件蕴侧,找不到才報(bào)出警告或錯(cuò)誤两入。
  11. 盡可能使用函數(shù)操作來代替正則表達(dá)式。
  12. str_replace 函數(shù)比 preg_replace 函數(shù)快择葡,strtr 函數(shù)的效率是 str_replace 函數(shù)的四倍剃氧。
  13. @屏蔽錯(cuò)誤消息的做法非常低效,且不易查找錯(cuò)誤已添,應(yīng)禁止使用滥酥。
  14. 使用 switch ... case 的結(jié)構(gòu)來代替 if ... elseif ... else,性能更高些缆蝉。
  15. 使用 foreach 代替 while瘦真、for循環(huán),foreach效率更高原杂。
  16. 使用 isset() 代替is_empty()判斷變量是否存在弦讽。判斷字符串長(zhǎng)度也可以使用isset(),如:
$str = 'abc';
var_dump(isset($str{2}));        // true
var_dump(strlen($str) < 3);      // false
  1. i += 1 代替 i = i + 1被碗,效率更高仿村。
  2. 遞增或遞減時(shí),使用++$i--$i效率更高焚志。++$i更快是因?yàn)樗恍枰?3 條指令(opcodes)畏鼓,$i++則需要 4 條指令。后置遞增實(shí)際上會(huì)產(chǎn)生一個(gè)臨時(shí)變量膳沽,這個(gè)臨時(shí)變量隨后被遞增让禀。而前置遞增直接在原值上遞增。這是最優(yōu)化處理的一種痛阻,正如 Zend 的 PHP 優(yōu)化器所作的那樣腮敌。
  3. 盡可能的使用 PHP 內(nèi)置函數(shù)。
  4. 不要在類的構(gòu)造函數(shù)__contruct()中寫入過多的業(yè)務(wù)邏輯斗这,這樣導(dǎo)致每次創(chuàng)建這個(gè)類對(duì)象時(shí)都會(huì)執(zhí)行構(gòu)造函數(shù)中的代碼表箭。
  5. 獲取當(dāng)前的腳本運(yùn)行時(shí)間可以直接獲取$_SERVER['REQUSET_TIME']優(yōu)于time()钮莲。
  6. 使用ip2long()long2ip()函數(shù)把IP地址轉(zhuǎn)成整型存放進(jìn)數(shù)據(jù)庫(kù)而非字符型。
  7. 不要隨便就復(fù)制變量极舔, 如將一個(gè)長(zhǎng)名稱變量復(fù)制到一個(gè)短名稱的變量中链瓦,這很容易導(dǎo)致內(nèi)存浪費(fèi)盯桦。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末拥峦,一起剝皮案震驚了整個(gè)濱河市卖子,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌玄柠,老刑警劉巖诫舅,帶你破解...
    沈念sama閱讀 217,542評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件刊懈,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡当宴,警方通過查閱死者的電腦和手機(jī)泽疆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門殉疼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人挂洛,你說我怎么就攤上這事眠砾。” “怎么了褒颈?”我有些...
    開封第一講書人閱讀 163,912評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵谷丸,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我泉唁,道長(zhǎng),這世上最難降的妖魔是什么亭畜? 我笑而不...
    開封第一講書人閱讀 58,449評(píng)論 1 293
  • 正文 為了忘掉前任贱案,我火速辦了婚禮宝踪,結(jié)果婚禮上碍扔,老公的妹妹穿的比我還像新娘。我一直安慰自己不同,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評(píng)論 6 392
  • 文/花漫 我一把揭開白布服鹅。 她就那樣靜靜地躺著百新,像睡著了一般。 火紅的嫁衣襯著肌膚如雪饭望。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,370評(píng)論 1 302
  • 那天厌漂,我揣著相機(jī)與錄音苇倡,去河邊找鬼。 笑死囤踩,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的钩乍。 我是一名探鬼主播怔锌,決...
    沈念sama閱讀 40,193評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼涝涤!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起阔拳,我...
    開封第一講書人閱讀 39,074評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤糊肠,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后嗤形,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體弧圆,經(jīng)...
    沈念sama閱讀 45,505評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評(píng)論 3 335
  • 正文 我和宋清朗相戀三年霹期,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了拯田。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,841評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡帕膜,死狀恐怖溢十,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情荒典,我是刑警寧澤,帶...
    沈念sama閱讀 35,569評(píng)論 5 345
  • 正文 年R本政府宣布寺董,位于F島的核電站遮咖,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏御吞。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評(píng)論 3 328
  • 文/蒙蒙 一挟裂、第九天 我趴在偏房一處隱蔽的房頂上張望揍诽。 院中可真熱鬧,春花似錦暑脆、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至玄帕,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間裤纹,已是汗流浹背丧没。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留漆际,地道東北人夺饲。 一個(gè)月前我還...
    沈念sama閱讀 47,962評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像往声,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子浩销,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 1慢洋、用單引號(hào)代替雙引號(hào)來包含字符串欢唾,這樣做會(huì)更快一些粉捻。因?yàn)镻HP會(huì)在雙引號(hào)包圍的字符串中搜尋變量,單引號(hào)則不會(huì)祟霍,注...
    紅魚綠魚與驢閱讀 1,069評(píng)論 0 3
  • 盡量靜態(tài)化: 靜態(tài)方法和非靜態(tài)方法的效率主要區(qū)別在內(nèi)存: 靜態(tài)方法在程序開始時(shí)生成內(nèi)存,實(shí)例方法在程序運(yùn)行中生成內(nèi)...
    零一間閱讀 729評(píng)論 1 7
  • 盡量靜態(tài)化: 如果一個(gè)方法能被靜態(tài)沸呐,那就聲明它為靜態(tài)的,速度可提高1/4崭添,甚至我測(cè)試的時(shí)候叛氨,這個(gè)提高了近三倍。當(dāng)然...
    夢(mèng)幻_78af閱讀 679評(píng)論 1 1
  • 暑假兩個(gè)月沒動(dòng)iOS屁置,做項(xiàng)目時(shí)思路清晰卻老是忘代碼仁连。藍(lán)瘦,之前覺得很簡(jiǎn)單沒啥饭冬,現(xiàn)在看來我的記性并不好;整理一下順便...
    dtythicc閱讀 257評(píng)論 0 0
  • 地點(diǎn):超市地鐵口那的四川小面 以面食為主并徘,肉絲面很不錯(cuò)麦乞,燃面有點(diǎn)膩但味道還行。有餃子劝评,酸菜餡還是頭一次吃。...
    nofantasy閱讀 331評(píng)論 0 0