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 syntax error, unexpected $end 错误的一种原因及解决
Oct 25 PHP
又一个php 分页类实现代码
Dec 03 PHP
第五章 php数组操作
Dec 30 PHP
LotusPhp笔记之:Cookie组件的使用详解
May 06 PHP
PHP jQuery表单,带验证具体实现方法
Feb 15 PHP
php简单构造json多维数组的方法示例
Jun 08 PHP
PHP实践教程之过滤、验证、转义与密码详解
Jul 24 PHP
PHP基于Closure类创建匿名函数的方法详解
Aug 17 PHP
PHP多线程模拟实现秒杀抢单
Feb 07 PHP
Thinkphp 框架扩展之驱动扩展实例分析
Apr 27 PHP
php实现的证件照换底色功能示例【人像抠图/换背景图】
May 29 PHP
PHP引擎php.ini参数优化深入讲解
Mar 24 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
动漫定律:眯眯眼都是怪物!这些角色狠话不多~
2020/03/03 日漫
用Zend Encode编写开发PHP程序
2006/10/09 PHP
php之curl实现http与https请求的方法
2014/10/21 PHP
PHP脚本监控Nginx 502错误并自动重启php-fpm
2015/05/13 PHP
csdn 博客的css样式 v3
2009/02/24 Javascript
jquery判断checkbox(复选框)是否被选中的代码
2010/10/20 Javascript
Knockoutjs快速入门(经典)
2012/12/24 Javascript
Jquery实现Div上下移动示例
2014/04/23 Javascript
javascript屏蔽右键代码
2014/05/15 Javascript
JQuery异步获取返回值中文乱码的解决方法
2015/01/29 Javascript
常用的JavaScript WEB操作方法分享
2015/02/28 Javascript
详细分析JavaScript函数定义
2015/07/16 Javascript
Bootstrap3.0学习教程之JS折叠插件
2016/05/27 Javascript
AngularJS实用开发技巧(推荐)
2016/07/13 Javascript
JS中位置与大小的获取方法
2016/11/22 Javascript
Express+Nodejs 下的登录拦截实现代码
2017/07/01 NodeJs
ionic 3.0+ 项目搭建运行环境的教程
2017/08/09 Javascript
vue.js实现的经典计算器/科学计算器功能示例
2018/07/11 Javascript
Vue点击切换Class变化,实现Active当前样式操作
2020/07/17 Javascript
[00:36]DOTA2上海特级锦标赛 Alliance战队宣传片
2016/03/04 DOTA
Python编写的com组件发生R6034错误的原因与解决办法
2013/04/01 Python
Python编程中对文件和存储器的读写示例
2016/01/25 Python
python操作xlsx文件的包openpyxl实例
2018/05/03 Python
python 实现求解字符串集的最长公共前缀方法
2018/07/20 Python
python2 与 pyhton3的输入语句写法小结
2018/09/10 Python
用Python配平化学方程式的方法
2019/07/20 Python
Python单元测试与测试用例简析
2019/11/09 Python
Django 限制访问频率的思路详解
2019/12/24 Python
将自己的数据集制作成TFRecord格式教程
2020/02/17 Python
opencv 图像滤波(均值,方框,高斯,中值)
2020/07/08 Python
香港迪士尼乐园酒店预订:Hong Kong Disneyland Hotels
2017/05/02 全球购物
幼儿师范毕业生自荐信
2013/11/09 职场文书
党员个人对照检查材料范文
2014/09/24 职场文书
乡镇领导班子四风整顿行动工作汇报
2014/10/25 职场文书
四川省传达学习贯彻党的群众路线教育实践活动总结大会精神新闻稿
2014/10/26 职场文书
Python自动化工具之实现Excel转Markdown表格
2022/04/08 Python