天天看點

PHP 代碼優化點彙總

1.合理使用unset函數[并不是使用unset()就一定會釋放記憶體]

參考:

https://www.jb51.net/article/30740.htm

$data = array_values($data);

//資料處理【将資料按照[rule]進行降序排列】

$data = array_map(function ($v) {

    $v['rule_count'] = count($v['rule']);

    return $v;

}

, $data);

$newData = [];

foreach ($data as $key => $value) {

    $newData[$key] = $value['rule_count'];

}

arsort($newData) $tmp = [];

foreach ($newData as $newKey => $newValue) {

    $tmp[] = $data[$newKey];

}

$data = $tmp;

$mm = memory_get_usage(); //擷取占用的記憶體 

var_dump($mm); 

unset($newData); 

unset($tmp); 

mm = memory_get_usage(); 

var_dump($mm); 

exit;

列印結果:

int(7047216)

int(7025672)

說明: 記憶體有釋放

2.收集

1.PHP代碼優化的目的是為了提高PHP程式的執行效率,編寫PHP代碼時,可以從以下方面着手優化:

1.1. 用單引号代替雙引号來包含字元串

1.2. 如果能将類的方法定義成static,就盡量定義成static,它的速度會提升将近4倍

3. 用 echo 代替 print,效率更好

4. 及時登出不用的變量,尤其是大數組,以便釋放記憶體

5. 盡量避免使用__get(),__set(),__autoload()

6. require_once()代價昂貴,盡量少用

7. 盡量用函數代替正規表達式完成相同的功能

8. str_replace 函數比 preg_replace 函數快

9. 使用分支語句(即 switch case)好于使用多個 if,else if 語句

10. 用@屏蔽錯誤消息的做法非常低效

11. 當執行變量$i的遞增或遞減時,++$i 會比 $i++ 快一些

12. 盡量使用PHP的内置函數

13. 循環體内部不要聲明變量,尤其是大變量

14. foreach 效率更高,盡量用 foreach 代替 while 和 for 循環

15. 用 $i+=1 代替 $i=$i+1,效率更高 

16. 對于 global 全局變量,用完後立即 unset() 掉 

17. 适當地做一些緩存處理

2.PHP 中換行可以用 PHP_EOL 來替代,以提高代碼的源代碼級可移植性:  //20191016 科興科學園

    unix系列用 \n

    windows系列用 \r\n

    mac用 \r

<?php

echo PHP_EOL;

//windows平台相當于    echo "\r\n";

//unix\linux平台相當于    echo "\n";

//mac平台相當于    echo "\r";

後續補充

...

3.參考

https://blog.csdn.net/lamp_yang_3533/article/details/50771456

後續補充

...