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的开发框架的现状和展望
Mar 16 PHP
PHP循环获取GET和POST值的代码
Apr 09 PHP
详解PHP显示MySQL数据的三种方法
Jun 05 PHP
PHP Squid中可缓存的动态网页设计
Sep 17 PHP
php实现兼容2038年后Unix时间戳转换函数
Mar 18 PHP
PHP基于单例模式实现的数据库操作基类
Jan 15 PHP
Zend Framework教程之Zend_Db_Table_Row用法实例分析
Mar 21 PHP
ThinkPHP的常用配置选项汇总
Mar 24 PHP
PHP入门教程之表单与验证实例详解
Sep 11 PHP
Yii2框架中使用PHPExcel导出Excel文件的示例
Aug 09 PHP
浅谈PHP各环境下的伪静态配置
Mar 13 PHP
Laravel框架实现抢红包功能示例
Oct 31 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
关于使用key/value数据库redis和TTSERVER的心得体会
2013/06/28 PHP
PHP简单获取及判断提交来源的方法
2016/04/22 PHP
PHP使用imagick扩展实现合并图像的方法
2017/04/25 PHP
PHP中递归的实现实例详解
2017/11/14 PHP
PHP实现文件上传后台处理脚本
2020/03/04 PHP
jQuery 使用手册(三)
2009/09/23 Javascript
关于URL中的特殊符号使用介绍
2011/11/03 Javascript
ajax java 实现自动完成功能
2012/12/19 Javascript
动态加载script文件的两种方法
2013/08/15 Javascript
from 表单提交返回值用post或者是get方法实现
2013/08/21 Javascript
Nodejs学习笔记之Global Objects全局对象
2015/01/13 NodeJs
jQuery实现统计输入文字个数的方法
2015/03/11 Javascript
jquery实现可自动收缩的TAB网页选项卡代码
2015/09/06 Javascript
基于jQuery实现点击列表加载更多效果
2016/05/31 Javascript
JavaScript必知必会(六) delete in instanceof
2016/06/08 Javascript
再次谈论Javascript中的this
2016/06/23 Javascript
整理关于Bootstrap列表组的慕课笔记
2017/03/29 Javascript
VUE 更好的 ajax 上传处理 axios.js实现代码
2017/05/10 Javascript
对vue中methods互相调用的方法详解
2018/08/30 Javascript
python的id()函数介绍
2013/02/10 Python
零基础学Python(一)Python环境安装
2014/08/20 Python
Pycharm学习教程(4) Python解释器的相关配置
2017/05/03 Python
Python 多线程其他属性以及继承Thread类详解
2019/08/28 Python
Django DRF路由与扩展功能的实现
2020/06/03 Python
Keras—embedding嵌入层的用法详解
2020/06/10 Python
python 批量下载bilibili视频的gui程序
2020/11/20 Python
numba提升python运行速度的实例方法
2021/01/25 Python
使用HTML5的Notification API制作web通知的教程
2015/05/08 HTML / CSS
Jeep牧马人、切诺基和自由人零配件:4 Wheel Drive Hardware
2017/07/02 全球购物
YSL圣罗兰美妆官方旗舰店:购买YSL口红
2018/04/16 全球购物
安德玛菲律宾官网:Under Armour菲律宾
2020/07/28 全球购物
财务出纳员岗位职责
2013/11/26 职场文书
法人委托书范本
2014/04/04 职场文书
环保倡议书怎么写
2014/05/16 职场文书
《我爱祖国》演讲稿1000字
2014/09/26 职场文书
2015新学期校长寄语(3篇)
2015/03/25 职场文书