摘要:闭包也叫匿名函数引入。建议在代码结构比较乱,需要封装的时候使用。希望此文能帮到未曾使用或者对的闭包有疑问的同学,同时如果有不对的地方欢迎支出。
闭包也叫匿名函数 PHP5.3 引入。
使用方法
需要调整数组元素中的值
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);
需要改变元素的结构
php$arr = [ [ "id"=>"", "name"=>"", "create_time"=>"", ], ]; $new_data = array_map(function($item) { return ["id"=>$item["id"],"name"=>$item["name"]]; }, $arr); //如果是用foreach还需要在循环里面建立零时变量,把需要的值赋给这个变量执行效率
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);
经过5W次执行之后,从结果看1-3,大部分情况执行时间依次升高,其中一次执行结果时间如下
1:0.0260009765625 2:0.038002014160156 3:0.047003030776978结论
闭包的代码相对优雅,但是逻辑比较容易混淆,相比其他方式执行效率相对较低,要慎用。建议在代码结构比较乱,需要封装的时候使用。
希望此文能帮到未曾使用或者对 PHP 的闭包有疑问的同学,同时如果有不对的地方欢迎支出。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/20942.html
摘要:实际上,闭包和匿名函数是伪装成函数的对象。容器流程浅析是社区中比较流行的容器。服务提供者服务提供者是连接容器与具体功能实现类的桥梁。服务提供者需要实现接口所有服务提供者必须实现接口方法。但已经完成了服务提供者的注册工作。 需要具备的知识点 闭包 闭包和匿名函数在PHP5.3.0中引入的。 闭包是指:创建时封装周围状态的函数。即使闭包所处的环境不存在了,闭包中封装的状态依然存在。 理论上...
摘要:也正式因为类的反射很多框架才能实现依赖注入自动解决类与类之间的依赖关系,这给我们平时的开发带来了很大的方便。为了更好地理解,我们通过一个例子来看类的反射,以及如何实现依赖注入。反射出方法的参数其返回值为对象构成的数组。 PHP具有完整的反射 API,提供了对类、接口、函数、方法和扩展进行逆向工程的能力。通过类的反射提供的能力我们能够知道类是如何被定义的,它有什么属性、什么方法、方法都有...
摘要:响应式原理之不论如何,最终响应式数据都要通过来实现,实际要借助新增的。在函数内,首先实例化一个实例,会在稍后添加为响应式数据自定义的中发挥作用。只有数组和对象才可能是响应式,才能返回实例。参考链接技术内幕揭开数据响应系统的面纱源码 Vue响应式原理之defineReactive defineReactive 不论如何,最终响应式数据都要通过defineReactive来实现,实际要借助...
摘要:任何一层报错,都能用捕获总结是一个非常轻量级的框架,只实现了中间件处理流程和对对象的封装。其他的功能都由外部中间件提供。 koa 的中间件机制巧妙的运用了闭包和 async await 的特点,形成了一个洋葱式的流程,和 JS 的事件流 (捕获 -> target -> 冒泡) 相似 handleRequest(ctx, fnMiddleware) { const res ...
阅读 1408·2023-04-26 01:58
阅读 2282·2021-11-04 16:04
阅读 1753·2021-08-31 09:42
阅读 1765·2021-07-25 21:37
阅读 1066·2019-08-30 15:54
阅读 2074·2019-08-30 15:53
阅读 3047·2019-08-29 13:28
阅读 2687·2019-08-29 10:56