config助手函数为config类封装,是对config类的简化
比如使用助手函数不需要引入Config类的命名空间,直接用就行
使用Config类方式
1.直接指定目录
$res = \think\Config::get();
2.直接引入即可
use think\Config;
就可以不用写路径了
$res = config();
等于助手函数效果是一样的。
源码分析:
所有的助手函数位于thinkphp下的helper.php文件
打开后可以看到这个
使用查找config
源码分析:
if (!function_exists('config')) {
/**
* 获取和设置配置参数
* @param string|array $name 参数名
* @param mixed $value 参数值
* @param string $range 作用域
* @return mixed
*/
function config($name = '', $value = null, $range = '')
{
if (is_null($value) && is_string($name)) {
return 0 === strpos($name, '?') ? Config::has(substr($name, 1), $range) : Config::get($name, $range);
} else {
return Config::set($name, $value, $range);
}
}
}
首先调用了function_exists进行判断,没有就创建一个
创建的config函数接受三个参数,原注释以说明
值为空,并且是字符串,将优先判断字符串中有么有问好,如果有,并且是第一位,将调用config下has方法,没有则调用get
上述不符合就调用设置方法,set
获取指定配置值
使用类方法获取
$res = Config::get('diy.this_name');
使用助手函数获取
$res = config('diy.this_name');
设置值
Config::set('this_is','哈哈');
dump(Config::get('this_is'));
相反get指定呢称没有就是null
使用助手函数设置值:
config('kkk','卡卡卡');
作用域
参数: key,val,作用域
通过之前的学习我们知道在设置值时可以指定作用域
config('kkk','卡卡卡','index');
这里指定了index方法才可访问
浏览器打印出null因为我们没有指定作用域
dump(Config::get('kkk','index'));
再次刷新即可看到效果
判断是否有配置
使用Config下has方法即可
$res = Config::has('kkk');
dump($res);
可以看到返回false,因为我在代码没有配置这一项
Config('kkk','12345');
$res = Config::has('kkk');
dump($res);
此时返回的就是true
我们在此之前定义好返回的也是true,
如果定义的值为null是false
使用助手函数has判断
config('?kkk');
必须第一位是?问号才能进行判断