首頁  >  文章  >  後端開發  >  php 優化

php 優化

高洛峰
高洛峰原創
2016-10-20 13:54:35955瀏覽

1 引號

關於雙引號"",單引號''
如果不轉義就使用單引號, 因為雙引號會搜尋變數, 單引號包裹的只是字串

2 數組入棧

$arr [] = 'x'; 代替array_push($arr, 'x'), 沒有函數調用的消耗

3 多分支選擇

switch case代替多個if else順便說一下, 當只有一個正確的輸出, 但是中間要排除很多的錯誤是, 不要用多個if else, 可以這樣,會是代碼優雅一點

function demo(){
    if () return false;
    if () return false;
    if () return false;
    return 'x';
}

4 面向對象與面向過程的選擇

能簡化的事情, 盡量簡化, 不要事事都想建一個類別再來做, 類別的實例化的消耗比函數呼叫更耗內存, 類別的實例化要在是分配堆內存, 不是棧內存

5 盡量使用php自帶的函數

不要想到自己實現, php自帶的函數都是用c語言來寫的, 你用php寫的運行效率能比c高?

6 盡量不要使用全局變量

global, 全局變量影響程序結構,

7 這是php,不是c/c++

在c中i++只需要一條cpu指令, 所以我一直以為$i++的效率很高, 但是我看到的框架(比如tp)都沒用$i++, 而是使用$i + = 1, 才發現我太年輕了, 在php中$i++需要4條opcodes

8 內存洩漏php中一般不會內存洩漏的(運行完了就退出了, 沒有常駐進程), 但我就遇到過同事寫的程式, 莫名奇妙的返回空的頁面, 但是看代碼邏輯好像又沒問題, 用xdebug調試才發現, 遞歸沒有出口導致無限調用, 所以是程序就有可能出現內存洩漏


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