Foreach、Array_Map 與Lambda 以及Array_Map 與靜態函數的效能比較
本文評估了三種方法之間的效能差異陣列:使用foreach、將array_map 與lambda/closure 函數一起使用、將array_map 與'static'一起使用函數/方法。
foreach
$result = array(); foreach ($numbers as $number) { $result[] = $number * 10; } return $result;
使用 lambda 映射
return array_map(function($number) { return $number * 10; }, $numbers);
function tenTimes($number) { return $number * 10; } return array_map('tenTimes', $numbers);
使用映射🎜>使用映射🎜>
使用映射🎜.函數,作為字串傳遞參考
PHP Version | Foreach | MapClosure | MapNamed | MapClosureI | ForEachI |
---|---|---|---|---|---|
5.6 | 0.57 | 0.59 | 0.69 | 0.73 | 0.60 |
7 | 0.11 | 0.16 | 0.11 | 0.19 | 0.11 |
HHVM | 0.09 | 0.10 | 0.10 | 0.11 | 0.09 |
性能基準
使用不同PHP 版本(5.6、7 和HHVM)進行的基準顯示了以下結果:一般來說,帶有lambda 函數的foreach 和array_map表現出相似的性能。具有靜態函數的 Array_map 稍微慢一些。將閉包與 use 語句一起使用會帶來明顯的效能損失。 結論這些方法之間的選擇取決於特定的用例和因素,例如程式碼可讀性、可維護性、和效能。對於簡單的轉換,具有 lambda 函數的 foreach 和 array_map 可提供相當的效能並提供簡潔的語法。對於更複雜的轉換,具有靜態函數的 array_map 可以實現更清晰且可重複使用的程式碼結構,儘管存在潛在的效能權衡。以上是哪一種 PHP 陣列轉換方法最快:foreach、有 Lambda 的 array_map,還是有靜態函數的 array_map?的詳細內容。更多資訊請關注PHP中文網其他相關文章!