gpt4 book ai didi

php - 为什么在像Pimple这样的ioc容器中使用匿名函数

转载 作者:可可西里 更新时间:2023-11-01 01:00:45 24 4
gpt4 key购买 nike

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

$container = new Pimple(); 
$container['db'] = function (){
return new SomeClass;
};

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

$container = new Pimple();
$container['db'] = new SomeClass;

有什么区别?

最佳答案

不同之处在于所谓的 lazy loading , 具体来说 lazy initialization .

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

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

关于php - 为什么在像Pimple这样的ioc容器中使用匿名函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27725000/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com