PHP中的閉包(匿名函數)淺析,php淺析_PHP教程

來源:互聯網
上載者:User

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


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

使用方法

需要調整數組元素中的值
複製代碼 代碼如下:
$data = range(0, 100);//想要每個元素的值都加上.html的尾碼
$suffix = '.html';

function makeSuffix($str, $suffix)
{
return $str . $suffix;
}

$new_data = array_map(function($item) use ($suffix) {
return makeSuffix($item, $suffix);
}, $data);

需要改變元素的結構
複製代碼 代碼如下:
$arr = [
[
'id'=>'',
'name'=>'',
'create_time'=>'',
],
];

$new_data = array_map(function($item) {
return ['id'=>$item['id'],'name'=>$item['name']];
}, $arr);
//如果是用foreach還需要在迴圈裡面建立零時變數,把需要的值賦給這個變數

執行效率
複製代碼 代碼如下:
$data = range(0, 50000)
//1
foreach ($data as &$value) {
$value = makeSuffix($value, $suffix);
}

//2
foreach ($data as $value) {
$new[] = makeSuffix($value, $suffix);
}

//3
array_map(function($item) use ($suffix) {
return makeSuffix($item, $suffix);
}, $data);

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

結論

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

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

http://www.bkjia.com/PHPjc/954659.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/954659.htmlTechArticlePHP中的閉包(匿名函數)淺析,php淺析 閉包也叫匿名函數 PHP5.3 引入。 使用方法 需要調整數組元素中的值 複製代碼 代碼如下: $data = rang...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.