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 相关文章推荐
NO3第三帝国留言簿制作过程
Oct 09 PHP
很实用的一个完整email发送程序
Oct 09 PHP
Ajax+PHP 边学边练之四 表单
Nov 27 PHP
php checkbox复选框值的获取与checkbox默认值输出方法
May 15 PHP
PHP图片处理之图片旋转和图片翻转实例
Nov 19 PHP
php调用mysql存储过程实例分析
Dec 29 PHP
PHP的Laravel框架结合MySQL与Redis数据库的使用部署
Mar 21 PHP
php微信浏览器分享设置以及回调详解
Aug 01 PHP
PHP使用FFmpeg获取视频播放总时长与码率等信息
Sep 13 PHP
php实现压缩合并js的方法【附demo源码下载】
Sep 22 PHP
PHP模拟http请求的方法详解
Nov 09 PHP
php框架知识点的整理和补充
Mar 01 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_MySQL教程-第一天
2007/03/18 PHP
表单复选框向PHP传输数据的代码
2007/11/13 PHP
php 数组排序 array_multisort与uasort的区别
2011/03/24 PHP
php利用iframe实现无刷新文件上传功能的代码
2011/09/29 PHP
使用php实现快钱支付功能(涉及到接口)
2013/07/01 PHP
使用PHP Socket 编程模拟Http post和get请求
2014/11/25 PHP
PHP模板引擎Smarty内建函数详解
2016/04/11 PHP
PHP树-不需要递归的实现方法
2016/06/21 PHP
PHP中STDCLASS用法实例分析
2016/11/11 PHP
ThinkPHP Where 条件中常用表达式示例(详解)
2017/03/31 PHP
thinkphp框架类库扩展操作示例
2019/11/26 PHP
让任务管理器中的CPU跳舞的js代码
2008/11/01 Javascript
jquery $.ajax相关用法分享
2012/03/16 Javascript
JS打印gridview实现原理及代码
2013/02/05 Javascript
js实现图片漂浮效果的方法
2015/03/02 Javascript
TypeScript具有的几个不同特质
2015/04/07 Javascript
Javascript中String的常用方法实例分析
2015/06/13 Javascript
修改Jquery Dialog 位置的实现方法
2016/08/26 Javascript
JS正则验证多个邮箱完整实例【邮箱用分号隔开】
2017/04/19 Javascript
Python translator使用实例
2008/09/06 Python
Python中的并发处理之asyncio包使用的详解
2018/04/03 Python
python实现简单http服务器功能
2018/09/17 Python
python pygame实现2048游戏
2018/11/20 Python
Python理解递归的方法总结
2019/01/28 Python
Python-while 计算100以内奇数和的方法
2019/06/11 Python
Django用户认证系统 User对象解析
2019/08/02 Python
python实现七段数码管和倒计时效果
2019/11/23 Python
Python抓新型冠状病毒肺炎疫情数据并绘制全国疫情分布的代码实例
2020/02/05 Python
解决pycharm导入本地py文件时,模块下方出现红色波浪线的问题
2020/06/01 Python
Booking.com西班牙:全球酒店预订
2018/03/30 全球购物
DBA的职责都有哪些
2012/05/16 面试题
在对linux系统分区进行格式化时需要对磁盘簇(或i节点密度)的大小进行选择,请说明选择的原则
2012/11/24 面试题
物业管理大学生个人的自我评价
2013/10/10 职场文书
爷爷追悼会答谢词
2014/01/24 职场文书
2014年向国旗敬礼活动总结
2014/09/27 职场文书
个人职业及收入证明
2014/10/13 职场文书