PHP赋值闭包函数的意义
大家讲道理
大家讲道理 2017-04-11 10:25:48
[PHP讨论组]

这是一段项目代码,$this['config']赋值了一个闭包函数,实际是new了一个新对象,请问一下这样写和直接new新对象有什么区别呢?或者有什么优点?

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(2)
高洛峰

截图中的类Cashier是一个Service Container。简单地说,如果直接new Config($config),那么实例化Cashier的时候,就必然会创建Config实例,不管有没有用到。使用闭包,只是赋予了获取依赖(即Config实例)的方法,这样只有在需要用到的时候,才会调用进行实例化。

关于使用闭包来处理依赖注入的实践,可以参考这篇文章:http://fabien.potencier.org/o...。

黄舟

起到了lazyload的作用, 延迟加载. 写在闭包中, 不会马上new一个class, 而是在调用闭包后再创建一个对象.

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号