thinkPHP3.2.3 C方法源码理解

function C($name=null, $value=null,$default=null) {
    static $_config = array(); //开始定义静态变量,这意味着只要tp框架还在运行中,$_config就存在
    // 无参数时获取所有的设置
    if (empty($name)) {
        return $_config;
    }
    // 优先执行设置获取或赋值
    if (is_string($name)) {
        //如果 $name是字符串,在判断有没有".",如果没有
        if (!strpos($name, '.')) {
            $name = strtoupper($name);
            if (is_null($value)){
                // 如果没有$value  ,判断$_config中是否存在这个配置,有直接读出来,没有就默认为空,返回结果
                return isset($_config[$name]) ? $_config[$name] : $default;
            }
            $_config[$name] = $value; // 直接将值赋值给$_config[$name];
            return null;
        }

        // 二维数组设置和获取支持
        $name = explode('.', $name); // 如果存在".",将此配置按二维数组来处理
        $name[0]   =  strtoupper($name[0]);
        if (is_null($value)){
            //如果值不存在,代表是获取配置操作。判断是否有这个配置,有就返回该配置的值,没有返回null
            return isset($_config[$name[0]][$name[1]]) ? $_config[$name[0]][$name[1]] : $default;
        }
        // 如果存在值,进行二维数组的设置。
        $_config[$name[0]][$name[1]] = $value;
        return null;
    }
    // 批量设置
    if (is_array($name)){
        //如果值为一个数组。将数组和原来的配置合并,并把所有键改为大写,注意,如果数组中某个键配置过,则当前的值会覆盖之前的设置
        $_config = array_merge($_config, array_change_key_case($name,CASE_UPPER));
        return null;
    }
    return null; // 避免非法参数
}

源代码理解就是以上代码注释,又代码则可以看出C方法支持三种设置方式。
一:
C(‘myConfig’,’myValue’);
二:
C(“myArr.myCon”,”myValue”);
三:
C( array);// a r r a y ) ; / / array即一个数组

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ThinkPHP是一个免费开源的,快速、简单的面向对象的轻量级PHP开发框架,遵循Apache2开源协议发布,是为了敏捷WEB应用 开发和简化企业级应用开发而诞生的。拥有众多的优秀功能和特性,经历了三年多发展的同时,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和 改进,众多的典型案例确保可以稳定用于商业以及门户级的开发。 ThinkPHP借鉴了国外很多优秀的框架和模式,使用面向对象的开发结构和MVC模式,采用单一入口模式等,融合了Struts的 Action思想和JSP的TagLib(标签库)、RoR的ORM映射和ActiveRecord模式,封装了CURD和一些常用操作,在项目配置、类 库导入、模版引擎、查询语言、自动验证、视图模型、项目编译、缓存机制、SEO支持、分布式数据库、多数据库连接和切换、认证机制和扩展性方面均有独特的 表现。 使用ThinkPHP,你可以更方便和快捷的开发和部署应用。当然不仅仅是企业级应用,任何PHP应用开发都可以从ThinkPHP的简单 和快速的特性中受益。ThinkPHP本身具有很多的原创特性,并且倡导大道至简,开发由我的开发理念,用最少的代码完成更多的功能,宗旨就是让WEB应 用开发更简单、更快速。为此ThinkPHP会不断吸收和融入更好的技术以保证其新鲜和活力,提供WEB应用开发的最佳实践! ThinkPHP遵循Apache2开源许可协议发布,意味着你可以免费使用ThinkPHP,甚至允许把你基于ThinkPHP开发的应用开源或商业产 品发布/销售。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值