国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

PHP中的閉包(匿名函數)淺析

2024-09-04 11:42:51
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了PHP中的閉包(匿名函數)淺析,本文給出了一個使用實例和執行效率測試,需要的朋友可以參考下

閉包也叫匿名函數 PHP5.3 引入。

使用方法

需要調整數組元素中的值,代碼如下:

  1. $data = range(0, 100);//想要每個元素的值都加上.html的后綴 
  2. $suffix = '.html'
  3. function makeSuffix($str$suffix
  4.     return $str . $suffix
  5.  
  6. $new_data = array_map(function($itemuse ($suffix) { 
  7.     return makeSuffix($item$suffix); 
  8. }, $data); 

需要改變元素的結構,代碼如下:

  1. $arr = [ 
  2.     [ 
  3.         'id'=>''
  4.         'name'=>''
  5.         'create_time'=>''
  6.     ], 
  7. ]; 
  8. $new_data = array_map(function($item) { 
  9.     return ['id'=>$item['id'],'name'=>$item['name']]; 
  10. }, $arr); 

如果是用foreach還需要在循環里面建立零時變量,把需要的值賦給這個變量

執行效率,代碼如下:

  1. $data = range(0, 50000) 
  2. //1 
  3. foreach ($data as &$value) { 
  4.     $value = makeSuffix($value$suffix); 
  5. //2 
  6. foreach ($data as $value) { 
  7.     $new[] = makeSuffix($value$suffix); 
  8.  
  9. //3 
  10. array_map(function($itemuse ($suffix) { 
  11.     return makeSuffix($item$suffix); 
  12. }, $data); 

經過5W次執行之后,從結果看1-3,大部分情況執行時間依次升高,其中一次執行結果時間如下,代碼如下:

1:0.0260009765625

2:0.038002014160156

3:0.047003030776978

結論

閉包的代碼相對優雅,但是邏輯比較容易混淆,相比其他方式執行效率相對較低,要慎用。建議在代碼結構比較亂,需要封裝的時候使用。

希望此文能幫到未曾使用或者對 PHP 的閉包有疑問的同學,同時如果有不對的地方歡迎支出。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 靖远县| 洮南市| 荆州市| 宣威市| 吉安市| 绵竹市| 廉江市| 浮梁县| 潍坊市| 海安县| 南陵县| 云南省| 宣化县| 明溪县| 封丘县| 稻城县| 江城| 青川县| 平阳县| 宜兴市| 五寨县| 华亭县| 郴州市| 朝阳县| 皋兰县| 昌乐县| 成都市| 辽阳县| 江川县| 景谷| 温州市| 栖霞市| 梁平县| 中江县| 福鼎市| 且末县| 通许县| 兴国县| 黄骅市| 油尖旺区| 开化县|