问题title可能起的有点大,我想请教大家的具体问题是
$value = Session::get('key', 'default_value');
$value = Session::get('key', function () { return 'default_value';});
上面代码的意思就是根据session的key取得相应的值,
当该key相应的值不存在时,返回默认值(default_value)。
请问这两种写法有什么区别,
第一种很自然能理解,
第二种用匿名函数来返回的写法,有什么特定的使用场合吗?
请不吝赐教!
多谢!
session中保存的值可能是字符串、数组、类等各种数据类型,就算是单一数据类型,它表示的意义也存在多种可能,如一本书信息,一个用户信息,一个销量排行等,除此之外,返回一个默认值还有可能要处理一些逻辑、事务等等,在这种情况下,将处理逻辑作为参数传入方法,可以方便的解决这类问题。
class Session
{
public static function get(String $key, Closure $func)
{
// 取key的value,如果为空则调用匿名函数
return $func(); // 只专注于自己的业务(k-v),其它业务委托匿名函数处理。
}
}
匿名函数是不需要定义函数名的,可以作为参数传递给其他函数, 通常用于回调函数。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。