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更改目录及子目录下所有的文件后缀的代码
Sep 24 PHP
php验证手机号码(支持归属地查询及编码为UTF8)
Feb 01 PHP
PHP递归算法的详细示例分析
Feb 19 PHP
PHP利用MySQL保存session的实现思路及示例代码
Sep 09 PHP
PHP安装memcached扩展笔记
May 28 PHP
给PHP开发者的编程指南 第一部分降低复杂程度
Jan 18 PHP
PHP 极验验证码实例讲解
Sep 29 PHP
老生常谈PHP 文件写入和读取(必看篇)
May 22 PHP
PHP自定义函数判断是否为Get、Post及Ajax提交的方法
Jul 27 PHP
Thinkphp5.0 框架实现控制器向视图view赋值及视图view取值操作示例
Oct 12 PHP
通过PHP的Wrapper无缝迁移原有项目到新服务的实现方法
Apr 02 PHP
深入理解PHP+Mysql分布式事务与解决方案
Dec 03 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中在数据库中保存Checkbox数据(1)
2006/10/09 PHP
PHP 设置MySQL连接字符集的方法
2011/01/02 PHP
解析如何修改phpmyadmin中的默认登陆超时时间
2013/06/25 PHP
php实现webservice实例
2014/11/06 PHP
php cli配置文件问题分析
2015/10/15 PHP
JQuery+JS实现仿百度搜索结果中关键字变色效果
2011/08/02 Javascript
jQuery用unbind方法去掉hover事件及其他方法介绍
2013/03/18 Javascript
js有序数组的连接问题
2013/10/01 Javascript
document.forms用法示例介绍
2014/06/26 Javascript
JavaScript搜索字符串并将搜索结果返回到字符串的方法
2015/04/06 Javascript
JavaScript DOM事件(笔记)
2015/04/08 Javascript
Bootstrap每天必学之导航条
2015/11/27 Javascript
js实现楼层导航功能
2017/02/23 Javascript
js实现3D图片展示效果
2017/03/09 Javascript
利用vue.js插入dom节点的方法
2017/03/15 Javascript
实例分析编写vue组件方法
2019/02/12 Javascript
如何在wxml中直接写js代码(wxs)
2019/11/14 Javascript
小程序中使用css var变量(使js可以动态设置css样式属性)
2020/03/31 Javascript
vant-ui AddressEdit地址编辑和van-area的用法说明
2020/11/03 Javascript
Python使用xlrd模块操作Excel数据导入的方法
2015/05/26 Python
使用Python搭建虚拟环境的配置方法
2018/02/28 Python
python3实现zabbix告警推送钉钉的示例
2019/02/20 Python
基于Django ORM、一对一、一对多、多对多的全面讲解
2019/07/26 Python
Django框架 Pagination分页实现代码实例
2019/09/04 Python
深入了解Python 变量作用域
2020/07/24 Python
通过Django Admin+HttpRunner1.5.6实现简易接口测试平台
2020/11/11 Python
英国女性化妆品收纳和家具网站:Beautify
2019/12/07 全球购物
JD Sports西班牙:英国领先的运动服装公司
2020/01/06 全球购物
领导干部培训感言
2014/01/23 职场文书
岗位职责说明书模板
2014/07/30 职场文书
2014年客房服务员工作总结
2014/11/18 职场文书
毕业论文致谢词
2015/05/14 职场文书
辅导员学期工作总结
2015/08/14 职场文书
Java使用jmeter进行压力测试
2021/07/09 Java/Android
关于nginx 实现jira反向代理的问题
2021/09/25 Servers
OpenCV实现常见的四种图像几何变换
2022/04/01 Python