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文本操作类
Nov 25 PHP
php5.3 注意事项说明
Jul 01 PHP
九个你必须知道而且又很好用的php函数和特点
Aug 08 PHP
php后台如何避免用户直接进入方法实例
Oct 15 PHP
php中文验证码实现示例分享
Jan 12 PHP
yii操作cookie实例简介
Jul 09 PHP
php短址转换实现方法
Feb 25 PHP
PHP实现微信JS-SDK接口选择相册及拍照并上传的方法
Dec 05 PHP
详谈php ip2long 出现负数的原因及解决方法
Apr 05 PHP
浅谈PHP中pack、unpack的详细用法
Mar 12 PHP
php 提交表单 关闭layer弹窗iframe的实例讲解
Aug 20 PHP
PHP中通过getopt解析GNU C风格命令行选项
Nov 18 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
《猛禽小队》:DC宇宙的又一超级大烂片
2020/04/09 欧美动漫
PHP文件下载类
2006/12/06 PHP
PHP内核探索之解释器的执行过程
2015/12/22 PHP
PHP浮点比较大小的方法
2016/02/14 PHP
JS 建立对象的方法
2007/04/21 Javascript
JavaScript 变量命名规则
2009/09/23 Javascript
Extjs TriggerField在弹出窗口显示不出问题的解决方法
2010/01/08 Javascript
写js时遇到的一些小问题
2010/12/06 Javascript
学习js在线html(富文本,所见即所得)编辑器
2012/12/18 Javascript
javascript延时加载之defer测试
2012/12/28 Javascript
Js冒泡事件详解及阻止示例
2014/03/21 Javascript
Javascript基础教程之数据类型转换
2015/01/18 Javascript
javascript中setInterval的用法
2015/07/19 Javascript
js实现简易的单数字随机抽奖(0-9)
2020/03/19 Javascript
Jquery实现弹性滑块滑动选择数值插件
2015/08/08 Javascript
javascript 显示全局变量与隐式全局变量的区别
2017/02/09 Javascript
jQuery实现鼠标滑过预览图片大图效果的方法
2017/04/26 jQuery
JS仿QQ好友列表展开、收缩功能(第二篇)
2017/07/07 Javascript
微信小程序 POST请求的实例详解
2017/09/29 Javascript
详解vue 实例方法和数据
2017/10/23 Javascript
javascript获取元素的计算样式
2019/05/24 Javascript
js实现3D粒子酷炫动态旋转特效
2020/09/13 Javascript
[56:41]iG vs Winstrike 2018国际邀请赛小组赛BO2 第二场
2018/08/17 DOTA
在Python中分别打印列表中的每一个元素方法
2018/11/07 Python
使用Python构造hive insert语句说明
2020/06/06 Python
英国领先的男士美容护发用品公司:Mankind
2016/08/31 全球购物
GafasWorld哥伦比亚:网上购买眼镜
2017/11/28 全球购物
你常见到的runtime exception
2016/09/05 面试题
装修致歉信
2014/01/15 职场文书
建筑工程技术专业求职信
2014/07/16 职场文书
关于成绩下滑的自我检讨书
2014/09/20 职场文书
超级实用!五步法则,教你写好年终工作总结
2019/12/05 职场文书
react 路由Link配置详解
2021/11/11 Javascript
详解MySQL的主键查询为什么这么快
2022/04/03 MySQL
漫画《尖帽子的魔法工坊》宣布动画化
2022/04/06 日漫
python实现学生信息管理系统(面向对象)
2022/06/05 Python