当前位置:  开发笔记 > 编程语言 > 正文

Slimframwork中的singleton和set之间有什么不同?

如何解决《Slimframwork中的singleton和set之间有什么不同?》经验,为你挑选了1个好方法。

我一直在使用Slim Framework,但有一些我无法理解的东西,set和singleton函数之间的区别,例如,如果我想将一个用户模型添加到我的容器中,我可以这样做:

$app->container->set('user', function(){
     return new User;
});

或这个:

$app->container->singleton('user', function(){
    return new User;
});

它工作正常.所以我想知道这个或那个的用途是什么.谢谢你的帮助.



1> VolkerK..:

也许一个例子会有所帮助

container->set('propA', function(){
    static $cnt = 0;
    return ++$cnt;
});

$app->container->singleton('propB', function(){
    static $cnt = 0;
    return ++$cnt;
});

for($i=0; $i<4; $i++) {
    // the function "behind" propA is called every time
    // when propA is accessed
    echo $app->propA, "\r\n";
}
echo "\r\n------\r\n";
for($i=0; $i<4; $i++) {
    // the function "behind" propB is called only once
    // and the stored return value is re-used
    echo $app->propB, "\r\n";
}

版画

1
2
3
4

------
1
1
1
1

推荐阅读
云聪京初瑞子_617
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有