ThinPHP源码分析之C函数

字号+ 编辑: 国内TP粉 修订: 科学鼠辈 来源: ThinkPHP 2023-09-05 我要说两句(0)

C()方法的扩充注释。

在翻看TP源码时发现一个C函数,编者对其做了注释,函数定义如下:

// 获取配置值
function C($name=null, $value=null) {
 //此方法是一个变量库,static变量每次都会保存下来
    static $_config = array();
    // 无参数时获取所有
    if (empty($name))
        return $_config;
    // 优先执行设置获取或赋值
    if (is_string($name)) {
        if (!strpos($name, '.')) {
            $name = strtolower($name);
            if (is_null($value))
            //若$value为不空表明是变量注册,为空表明是变量查找
                return isset($_config[$name]) ? $_config[$name] : null;
            $_config[$name] = $value;
            return;
        }
        // 二维数组设置和获取支持
        $name = explode('.', $name);
        $name[0] = strtolower($name[0]);
        if (is_null($value))
            return isset($_config[$name[0]][$name[1]]) ? $_config[$name[0]][$name[1]] : null;
        $_config[$name[0]][$name[1]] = $value;
        return;
    }
    // 批量设置
    if (is_array($name))
     //若$name为数组,则返回所有的配置变量
        return $_config = array_merge($_config, array_change_key_case($name));
    return null; // 避免非法参数
}

注意$_config变量前有static修饰,所以$_config在内存中存在于静态数据段,只要TP程序还在运行,其值将一直存在。C()函数有两种用法,若只传一个参数,表示查找常量。若传两个参数,表示常量注册。

还有一点需要说明的是include()的返回值是什么呢?
include()的返回值一般情况下要包含的文件存在则返回true,不存在则返回false。但是,当要包含的文件中有return的时候include()的返回值是所return的值而不是true OR false。

阅完此文,您的感想如何?
  • 有用

    0

  • 没用

    0

  • 开心

    0

  • 愤怒

    0

  • 可怜

    0

1.如文章侵犯了您的版权,请发邮件通知本站,该文章将在24小时内删除;
2.本站标注原创的文章,转发时烦请注明来源;
3.Q群: 2702237 13835667

相关课文
  • mac开发接入微信公众号接口返回报错 cURL error 56: SSLRead() return error -9806

  • PHP的换行符是什么

  • pecl安装程序时报错Array and string offset access syntax with curly braces is no longer supported

  • 由于商家传入的H5交易参数有误,该笔交易暂时无法完成,请联系商家解决

我要说说
网上嘉宾点评