国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

淺析 PHP 閉包

focusj / 2019人閱讀

摘要:閉包也叫匿名函數(shù)引入。建議在代碼結(jié)構比較亂,需要封裝的時候使用。希望此文能幫到未曾使用或者對的閉包有疑問的同學,同時如果有不對的地方歡迎支出。

閉包也叫匿名函數(shù) PHP5.3 引入。

使用方法

需要調(diào)整數(shù)組元素中的值

php$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);

需要改變元素的結(jié)構

php$arr = [
    [
        "id"=>"",
        "name"=>"",
        "create_time"=>"",
    ],
];

$new_data = array_map(function($item) {
    return ["id"=>$item["id"],"name"=>$item["name"]];
}, $arr);
//如果是用foreach還需要在循環(huán)里面建立零時變量,把需要的值賦給這個變量

執(zhí)行效率
php$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);

經(jīng)過5W次執(zhí)行之后,從結(jié)果看1-3,大部分情況執(zhí)行時間依次升高,其中一次執(zhí)行結(jié)果時間如下

1:0.0260009765625
2:0.038002014160156
3:0.047003030776978
結(jié)論

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

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

文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/20942.html

相關文章

  • PHP容器--Pimple運行流程淺析

    摘要:實際上,閉包和匿名函數(shù)是偽裝成函數(shù)的對象。容器流程淺析是社區(qū)中比較流行的容器。服務提供者服務提供者是連接容器與具體功能實現(xiàn)類的橋梁。服務提供者需要實現(xiàn)接口所有服務提供者必須實現(xiàn)接口方法。但已經(jīng)完成了服務提供者的注冊工作。 需要具備的知識點 閉包 閉包和匿名函數(shù)在PHP5.3.0中引入的。 閉包是指:創(chuàng)建時封裝周圍狀態(tài)的函數(shù)。即使閉包所處的環(huán)境不存在了,閉包中封裝的狀態(tài)依然存在。 理論上...

    RobinTang 評論0 收藏0
  • 淺析如何通過PHP類的反射來實現(xiàn)依賴注入

    摘要:也正式因為類的反射很多框架才能實現(xiàn)依賴注入自動解決類與類之間的依賴關系,這給我們平時的開發(fā)帶來了很大的方便。為了更好地理解,我們通過一個例子來看類的反射,以及如何實現(xiàn)依賴注入。反射出方法的參數(shù)其返回值為對象構成的數(shù)組。 PHP具有完整的反射 API,提供了對類、接口、函數(shù)、方法和擴展進行逆向工程的能力。通過類的反射提供的能力我們能夠知道類是如何被定義的,它有什么屬性、什么方法、方法都有...

    WilsonLiu95 評論0 收藏0
  • 淺析js閉包

    摘要:在中,變量只有兩種,全局變量和局部變量。這里要注意的是定義局部變量必須加上,否則定義了全局變量。上面也可以這樣實現(xiàn)那么閉包的特點是什么呢首先是之前一直在強調(diào)的可以訪問一個函數(shù)的局部變量。 **什么是閉包?** 閉包是指所有能夠讀取其他函數(shù)內(nèi)部變量的函數(shù)。在JavaScript中,變量只有兩種,全局變量和局部變量。區(qū)別在于任何函數(shù)都可以直接對全局變量進行訪問,而局部變量則只有當前函數(shù)以及...

    cnio 評論0 收藏0
  • 淺析Vue響應式原理(三)

    摘要:響應式原理之不論如何,最終響應式數(shù)據(jù)都要通過來實現(xiàn),實際要借助新增的。在函數(shù)內(nèi),首先實例化一個實例,會在稍后添加為響應式數(shù)據(jù)自定義的中發(fā)揮作用。只有數(shù)組和對象才可能是響應式,才能返回實例。參考鏈接技術內(nèi)幕揭開數(shù)據(jù)響應系統(tǒng)的面紗源碼 Vue響應式原理之defineReactive defineReactive 不論如何,最終響應式數(shù)據(jù)都要通過defineReactive來實現(xiàn),實際要借助...

    tomener 評論0 收藏0
  • koa2 總體流程原理淺析(二) 之 中間件原理

    摘要:任何一層報錯,都能用捕獲總結(jié)是一個非常輕量級的框架,只實現(xiàn)了中間件處理流程和對對象的封裝。其他的功能都由外部中間件提供。 koa 的中間件機制巧妙的運用了閉包和 async await 的特點,形成了一個洋蔥式的流程,和 JS 的事件流 (捕獲 -> target -> 冒泡) 相似 handleRequest(ctx, fnMiddleware) { const res ...

    zhoutk 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<