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 相关文章推荐
第九节 绑定 [9]
Oct 09 PHP
用Flash图形化数据(一)
Oct 09 PHP
php之对抗Web扫描器的脚本技巧
Oct 01 PHP
PHP Google的translate API代码
Dec 10 PHP
ThinkPHP关联模型操作实例分析
Sep 23 PHP
ThinkPHP验证码使用简明教程
Mar 05 PHP
PHP编程中的__clone()方法使用详解
Nov 27 PHP
学习php设计模式 php实现工厂模式(factory)
Dec 07 PHP
详解PHP处理密码的几种方式
Nov 30 PHP
使用PHP连接数据库_实现用户数据的增删改查的整体操作示例
Sep 01 PHP
PHP实现从上往下打印二叉树的方法
Jan 18 PHP
php+js实现点赞功能的示例详解
Aug 07 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中的Class的几点个人看法
2006/10/09 PHP
php时间计算相关问题小结
2016/05/09 PHP
PHP中localeconv()函数的用法
2019/03/26 PHP
十分钟打造AutoComplete自动完成效果代码
2009/12/26 Javascript
JQuery之拖拽插件实现代码
2011/04/14 Javascript
深入剖析JavaScript中的枚举功能
2014/03/06 Javascript
js或jquery实现页面打印可局部打印
2014/03/27 Javascript
超棒的响应式布局jQuery插件Freetile.js
2014/11/17 Javascript
详解JavaScript的Date对象(制作简易钟表)
2020/04/07 Javascript
深入理解Angular2 模板语法
2016/08/07 Javascript
用 js 的 selection range 操作选择区域内容和图片
2017/04/18 Javascript
JavaScript的继承实现小结
2017/05/07 Javascript
深入浅出es6模板字符串
2017/08/26 Javascript
jQuery中 DOM节点操作方法大全
2017/10/12 jQuery
用vue写一个仿简书的轮播图的示例代码
2018/03/13 Javascript
JS获取浏览器地址栏的多个参数值的任意值实例代码
2018/07/24 Javascript
详解使用angular框架离线你的应用(pwa指南)
2019/01/31 Javascript
小程序如何自主实现拦截器的示例代码
2019/11/04 Javascript
JavaScript实现飞舞的泡泡效果
2020/02/07 Javascript
手把手教你pycharm专业版安装破解教程(linux版)
2019/09/26 Python
Django通用类视图实现忘记密码重置密码功能示例
2019/12/17 Python
pandas分组聚合详解
2020/04/10 Python
python报错: 'list' object has no attribute 'shape'的解决
2020/07/15 Python
玛蒂尔达简服装:Matilda Jane Clothing
2019/02/13 全球购物
美术专业学生个人自我评价
2013/09/19 职场文书
英语感恩演讲稿
2014/01/14 职场文书
优秀老师事迹材料
2014/02/05 职场文书
幼儿园大班毕业感言
2014/02/06 职场文书
廉洁自律演讲稿
2014/05/22 职场文书
报效祖国演讲稿
2014/09/15 职场文书
2014年向国旗敬礼活动方案
2014/09/27 职场文书
焦裕禄观后感
2015/06/03 职场文书
五年级作文之劳动作文
2019/11/12 职场文书
MySQL数据库10秒内插入百万条数据的实现
2021/11/01 MySQL
php png失真的原因及解决办法
2021/11/17 PHP
javascript之Object.assign()的痛点分析
2022/03/03 Javascript