您好,匿名用户
随意问技术百科期待您的加入

关于PHP的匿名函数和闭包

0 投票

问题title可能起的有点大,我想请教大家的具体问题是

$value = Session::get('key', 'default_value');
$value = Session::get('key', function () { return 'default_value';});

上面代码的意思就是根据session的key取得相应的值,
当该key相应的值不存在时,返回默认值(default_value)。

请问这两种写法有什么区别,
第一种很自然能理解,
第二种用匿名函数来返回的写法,有什么特定的使用场合吗?
请不吝赐教!
多谢!

用户头像 提问 2012年 12月1日 @ Graves 上等兵 (254 威望)
分享到:

1个回答

0 投票
 
最佳答案

问你一个问题就知道什么场合用匿名函数了:

假如默认值也是事先不知道,需要事后计算出来的呢?

当然你也可以在调用此方法之前先将默认值算好再传入第二参数,不过这样会有这么一个问题,如果key存在,并不需要默认值的情况下,之前算默认值运行的代码不是都浪费了吗?但是匿名函数不会,匿名函数的萌点在于需要调用它的时候才会运行,你只不过是事先定义好它的运行流程而已。

另外你这个题目有点不太准确,你正文里提到的问题其实跟闭包没什么关系哦

用户头像 回复 2012年 12月1日 @ Sion 上等兵 (319 威望)
选中 2012年 12月1日 @Graves
提一个问题:

相关问题

0 投票
1 回复 204 阅读
用户头像 提问 2012年 12月1日 @ Scorpio 上等兵 (220 威望)
0 投票
1 回复 29 阅读
用户头像 提问 2012年 12月1日 @ Diana 上等兵 (326 威望)
0 投票
1 回复 31 阅读
用户头像 提问 2013年 11月27日 @ Garen 上等兵 (269 威望)
0 投票
1 回复 36 阅读
0 投票
1 回复 38 阅读
用户头像 提问 2012年 12月1日 @ Rengar 上等兵 (236 威望)

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...