首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么像Pimple这样的ioc容器中使用匿名函数?

为什么像Pimple这样的ioc容器中使用匿名函数?
EN

Stack Overflow用户
提问于 2014-12-31 18:34:50
回答 1查看 154关注 0票数 3

我知道在Pimple容器中,依赖项声明为

代码语言:javascript
复制
$container = new Pimple(); 
$container['db'] = function (){
  return new SomeClass; 
}; 

我的问题是,如果我只是将依赖关系声明为像这样的简单数组,会怎样呢?

代码语言:javascript
复制
$container = new Pimple();
$container['db'] = new SomeClass; 

有什么关系?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-31 18:55:49

区别是一种叫做懒惰加载的东西,特别是延迟初始化

在第一个示例中,在请求SomeClass之前,实际上不会实例化它。在您的第二个示例中,将立即实例化它。因此,即使请求从未命中数据库,也会创建对象并建立连接。

通过使用第一个示例,如果请求从未实际使用数据库,则永远不会建立到数据库的连接。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27725000

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档