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+APACHE实现用户论证的方法
Oct 09 PHP
php中实现简单的ACL 完结篇
Sep 07 PHP
php连接mssql数据库的几种方法
Feb 21 PHP
浅析php数据类型转换
Jan 09 PHP
PHP利用APC模块实现文件上传进度条的方法
Jan 26 PHP
php目录拷贝实现方法
Jul 10 PHP
Joomla开启SEF的方法
May 04 PHP
PHP微信开发用Cache 解决数据缓存
Jul 11 PHP
PHP接收App端发送文件流的方法
Sep 23 PHP
使用PHPMailer发送邮件实例
Feb 15 PHP
Smarty模板类内部原理实例分析
Jul 03 PHP
Laravel 读取 config 下的数据方法
Oct 13 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中实现获取IP和地理位置类分享
2015/02/10 PHP
PHP实现的简单sha1加密功能示例
2017/08/27 PHP
php插入mysql数据返回id的方法
2018/05/31 PHP
jQuery验证Checkbox是否选中的代码 推荐
2011/09/04 Javascript
IE6浏览器下resize事件被执行了多次解决方法
2012/12/11 Javascript
Knockout visible绑定使用方法
2013/11/15 Javascript
javascript贪吃蛇完整版(源码)
2013/12/09 Javascript
原生JavaScript实现动态省市县三级联动下拉框菜单实例代码
2016/02/03 Javascript
jQuery实现的导航动画效果(附demo源码)
2016/04/01 Javascript
js获取页面引用的css样式表中的属性值方法(推荐)
2016/08/19 Javascript
javascript 中Cookie读、写与删除操作
2017/03/29 Javascript
详解Immutable及 React 中实践
2018/03/01 Javascript
Vue.js 中的 v-model 指令及绑定表单元素的方法
2018/12/03 Javascript
vue项目创建并引入饿了么elementUI组件的步骤
2019/04/11 Javascript
解决vue组件props传值对象获取不到的问题
2019/06/06 Javascript
Vue 动态组件components和v-once指令的实现
2019/08/30 Javascript
jquery css实现流程进度条
2020/03/26 jQuery
[01:20]辉夜杯背景故事宣传片《辉夜传说》
2015/12/25 DOTA
[01:00:52]2018DOTA2亚洲邀请赛 4.4 淘汰赛 EG vs LGD 第一场
2018/04/05 DOTA
python中实现k-means聚类算法详解
2017/11/11 Python
pandas 实现将重复表格去重,并重新转换为表格的方法
2018/04/18 Python
Python 统计字数的思路详解
2018/05/08 Python
python+OpenCV实现车牌号码识别
2019/11/08 Python
Python 如何调试程序崩溃错误
2020/08/03 Python
Python tempfile模块生成临时文件和临时目录
2020/09/30 Python
Python pathlib模块使用方法及实例解析
2020/10/05 Python
python中not、and和or的优先级与详细用法介绍
2020/11/03 Python
Farfetch台湾官网:奢侈品牌时尚购物平台
2019/06/17 全球购物
香港演唱会订票网站:StubHub香港
2019/10/10 全球购物
后勤园长自我鉴定
2013/10/17 职场文书
餐饮业员工工作决心书
2014/03/11 职场文书
奥林匹克运动会口号
2014/06/19 职场文书
2014年党员评议表自我评价
2014/09/27 职场文书
酒会邀请函
2015/01/31 职场文书
2016年教师节感恩寄语
2015/12/04 职场文书
详解TS数字分隔符和更严格的类属性检查
2021/05/06 Javascript