ThinkPHP开发框架函数详解:C方法


Posted in PHP onAugust 14, 2015

C方法是ThinkPHP用于设置、获取,以及保存配置参数的方法,使用频率较高。

了解C方法需要首先了解下ThinkPHP的配置,因为C方法的所有操作都是围绕配置相关的。ThinkPHP的配置文件采用PHP数组格式定义。

由于采用了函数重载设计,所以用法较多,我们来一一说明下。

设置参数

C('DB_NAME','thinkphp');

表示设置DB_NAME配置参数的值为thinkphp,由于配置参数不区分大小写,所以下面的写法也是一样:

C('db_name','thinkphp');

但是建议保持统一大写的配置定义规范。

项目的所有参数在未生效之前都可以通过该方法动态改变配置,最后设置的值会覆盖前面设置或者惯例配置里面的定义,也可以使用参数配置方法添加新的配置。

支持二级配置参数的设置,例如:

C('USER.USER_ID',8);

配置参数不建议超过二级。

如果要设置多个参数,可以使用批量设置,例如:

$config['user_id'] = 1;
$config['user_type'] = 1;
C($config);

如果C方法的第一个参数传入数组,就表示批量赋值,上面的赋值相当于:

C('USER_ID',1);
C('USER_TYPE',1);

获取参数

要获取设置的参数,可以用:

$userId = C('USER_ID');
$userType = C('USER_TYPE');

如果USER_ID参数尚未定义过,则返回NULL。

也可以支持获取二级配置参数,例如:

$userId = C('USER.USER_ID');

如果传入的配置参数为空,表示获取全部的参数:

$config = C();

保存设置

3.1版本增加了一个永久保存设置参数的功能,仅针对批量赋值的情况,例如:

$config['user_id'] = 1;
$config['user_type'] = 1;
C($config,'name');

在批量设置了config参数后,会连同当前所有的配置参数保存到缓存文件(或者其他配置的缓存方式)。

保存之后,如果要取回保存的参数,可以用

$config = C('','name');

其中name就是前面保存参数时用的缓存的标识,必须一致才能正确取回保存的参数。取回的参数会和当前的配置参数合并,无需手动合并。

代码如下:

class TestAction extends Action{
  /**
   * $config['user_id'] = 1;
    $config['user_type'] = 1;
    C($config);
      如果C方法的第一个参数传入数组,就表示批量赋值,上面的赋值相当于:
    C('USER_ID',1);
    C('USER_TYPE',1);
      获取参数
      要获取设置的参数,可以用:
    $userId = C('USER_ID');
    $userType = C('USER_TYPE');
   */
  public function index(){
    C('USER_ID',102);  //给参数赋值
    C('USER_TYPE',107); //给参数赋值
    dump(C('USER_ID')).'<br/>';//102=>获取设置的参数
    dump(C('USER_TYPE')).'<br/>';//107=>获取设置的参数
    $this->display();
  }
}
PHP 相关文章推荐
在PHP的图形函数中显示汉字
Oct 09 PHP
利用PHP实现智能文件类型检测的实现代码
Aug 02 PHP
深入phpMyAdmin的安装与配置的详细步骤
May 07 PHP
php 表单提交大量数据发生丢失的解决方法
Mar 03 PHP
PHP记录搜索引擎蜘蛛访问网站足迹的方法
Apr 15 PHP
PHP下载生成的csv文件及问题总结
Aug 06 PHP
weiphp微信公众平台授权设置
Jan 04 PHP
PHP二分查找算法示例【递归与非递归方法】
Sep 29 PHP
Yii2实现增删改查后留在当前页的方法详解
Jan 13 PHP
ThinkPHP中create()方法自动验证实例
Apr 26 PHP
PHP CodeIgniter分页实例及多条件查询解决方案(推荐)
May 20 PHP
discuz论坛更换域名,详细文件修改步骤
Dec 09 PHP
提高php编程效率技巧
Aug 13 #PHP
php轻量级的性能分析工具xhprof的安装使用
Aug 12 #PHP
详细解读PHP中接口的应用
Aug 12 #PHP
举例讲解PHP面对对象编程的多态
Aug 12 #PHP
详解PHP中的状态模式编程
Aug 11 #PHP
简单介绍PHP的责任链编程模式
Aug 11 #PHP
PHP会话处理的10个函数
Aug 11 #PHP
You might like
提升PHP执行速度全攻略(下)
2006/10/09 PHP
解析:使用php mongodb扩展时 需要注意的事项
2013/06/18 PHP
php实现网站顶踩功能的完整前端代码
2015/07/19 PHP
PHP引用返回用法示例
2016/05/28 PHP
PHP高精确度运算BC函数库实例详解
2017/08/15 PHP
PHP排序算法之简单选择排序(Simple Selection Sort)实例分析
2018/04/20 PHP
Thinkphp 3.2框架使用Redis的方法详解
2019/10/24 PHP
详解PHP中的8个魔术常量
2020/07/06 PHP
鼠标滑在标题上显示图片的JS代码
2013/11/19 Javascript
jQuery复制表单元素附源码分享效果演示
2015/09/30 Javascript
canvas实现钟表效果
2017/02/13 Javascript
浅谈js中startsWith 函数不能在任何浏览器兼容的问题
2017/03/01 Javascript
JS判断两个对象内容是否相等的方法示例
2017/04/10 Javascript
JS引用传递与值传递的区别与用法分析
2018/06/01 Javascript
浅谈Vue数据响应思路之数组
2018/11/06 Javascript
详解如何模拟实现node中的Events模块(通俗易懂版)
2019/04/15 Javascript
el-select数据过多懒加载的解决(loadmore)
2019/05/29 Javascript
[36:20]完美世界DOTA2联赛PWL S3 access vs Rebirth 第一场 12.17
2020/12/18 DOTA
批处理与python代码混合编程的方法
2016/05/19 Python
Python numpy生成矩阵、串联矩阵代码分享
2017/12/04 Python
Python将多个list合并为1个list的方法
2018/06/27 Python
使用python对文件中的单词进行提取的方法示例
2018/12/21 Python
如何使用python3获取当前路径及os.path.dirname的使用
2019/12/13 Python
Python操作Excel把数据分给sheet
2020/05/20 Python
解决python 虚拟环境删除包无法加载的问题
2020/07/13 Python
写一个用矩形法求定积分的通用函数
2012/11/08 面试题
外企办公室竞聘演讲稿
2013/12/29 职场文书
交通安全演讲稿
2014/01/07 职场文书
大学运动会通讯稿
2014/01/28 职场文书
国家助学贷款承诺书
2015/04/30 职场文书
建房合同协议书
2016/03/21 职场文书
Pytorch 如何实现常用正则化
2021/05/27 Python
mysql分表之后如何平滑上线详解
2021/11/01 MySQL
分享几个简单MySQL优化小妙招
2022/03/31 MySQL
尝试使用Python爬取城市租房信息
2022/04/12 Python
Python 中面向接口编程
2022/05/20 Python