1. 之前的版本和现在的版本配置不一样。
2. 如果配置项为空字符串,并不会赋值为默认值,例如:如果session.name="";使用Config::get('session.name','PHPSESSID'),并不会获得"PHPSESSID"的值,而会直接变为""。
/**
* 获取配置参数 为空则获取所有配置
* @access public
* @param string $name 配置参数名(支持多级配置 .号分割)
* @param mixed $default 默认值
* @return mixed
*/
public function get(string $name = null, $default = null)
{
// 无参数时获取所有
if (empty($name)) {
return $this->config;
}
if (false === strpos($name, '.')) {
return $this->pull($name);
}
$name = explode('.', $name);
$name[0] = strtolower($name[0]);
$config = $this->config;
// 按.拆分成多维数组进行判断
foreach ($name as $val) {
//此处使用的是isset,我是直接改为 !empty($config[$val])
if (isset($config[$val])) {
$config = $config[$val];
} else {
return $default;
}
}
return $config;
} 最佳答案