php config()函数,Laravel 的 config () 函数

下面是thinkPHP的源码, laravel的源码看不太懂, 不知道是怎么把config('app.debug')中的app.debug解析成数组的键的, 迷惑。

/**

* 获取配置参数 为空则获取所有配置

* @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) {

if (isset($config[$val])) {

$config = $config[$val];

} else {

return $default;

}

}

return $config;

}

--- 更新 ---

找到了, 以下是laravel的源码:

/**

* Get an item from an array using "dot" notation.

*

* @param \ArrayAccess|array $array

* @param string $key

* @param mixed $default

* @return mixed

*/

public static function get($array, $key, $default = null)

{

if (! static::accessible($array)) {

return value($default);

}

if (is_null($key)) {

return $array;

}

if (static::exists($array, $key)) {

return $array[$key];

}

if (strpos($key, '.') === false) {

return $array[$key] ?? value($default);

}

foreach (explode('.', $key) as $segment) {

if (static::accessible($array) && static::exists($array, $segment)) {

$array = $array[$segment];

} else {

return value($default);

}

}

return $array;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值