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代码
Apr 09 PHP
PHP学习之数组值的操作
Apr 17 PHP
android上传图片到PHP的过程详解
Aug 03 PHP
php实现的xml操作类
Jan 15 PHP
自定义min版smarty模板引擎MinSmarty.class.php文件及用法
May 20 PHP
解读PHP中上传文件的处理问题
May 29 PHP
Laravel中任务调度console使用方法小结
May 07 PHP
PHP实现向关联数组指定的Key之前插入元素的方法
Jun 06 PHP
Yii 2.0实现联表查询加搜索分页的方法示例
Aug 02 PHP
php获取微信共享收货地址的方法
Dec 21 PHP
PHP按一定比例压缩图片的方法
Oct 12 PHP
PHP校验15位和18位身份证号的类封装
Nov 07 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
兼容PHP5的PHP目录管理函数库
2008/07/10 PHP
四个常见html网页乱码问题及解决办法
2015/09/08 PHP
动态加载iframe
2006/06/16 Javascript
Mootools 1.2教程 Tooltips
2009/09/15 Javascript
分享一个用Mootools写的鼠标滑过进度条改变进度值的实现代码
2011/12/12 Javascript
fancybox modal的完美解决(右上的X)
2012/10/30 Javascript
js 通过cookie实现刷新不变化树形菜单
2014/10/30 Javascript
jQuery实现表单提交时判断的方法
2014/12/13 Javascript
jquery 插件实现多行文本框[textarea]自动高度
2015/03/04 Javascript
AngularJS基础 ng-copy 指令实例代码
2016/08/01 Javascript
js时间控件只显示年月
2017/01/08 Javascript
深入理解Vue.js源码之事件机制
2017/09/27 Javascript
JavaScript自执行函数和jQuery扩展方法详解
2017/10/27 jQuery
JS实现获取自定义属性data值的方法示例
2018/12/19 Javascript
vue中eslintrc.js配置最详细介绍
2018/12/21 Javascript
angularjs请求数据的方法示例
2019/08/06 Javascript
vue项目初始化到登录login页面的示例
2019/10/31 Javascript
JavaScript canvas绘制渐变颜色的矩形
2020/02/18 Javascript
vue实现在进行增删改操作后刷新页面
2020/08/05 Javascript
Vue中component标签解决项目组件化操作
2020/09/04 Javascript
Python 开发Activex组件方法
2009/11/08 Python
Python实现抓取网页并且解析的实例
2014/09/20 Python
python2.7的flask框架之引用js&amp;css等静态文件的实现方法
2019/08/22 Python
配置python的编程环境之Anaconda + VSCode的教程
2020/03/29 Python
10个最常见的HTML5面试题 附答案
2016/06/06 HTML / CSS
最好的意大利皮夹克:D’Arienzo
2018/12/04 全球购物
大学生咖啡店创业计划书
2014/01/21 职场文书
信息专业学生学习的自我评价
2014/02/17 职场文书
微信营销策划方案
2014/02/24 职场文书
财务总监管理岗位职责
2014/03/08 职场文书
团支部书记竞选稿
2015/11/21 职场文书
合同范本之电脑出租
2019/08/13 职场文书
创业计划书之家教托管
2019/09/25 职场文书
golang 在windows中设置环境变量的操作
2021/04/29 Golang
深入浅析Django MTV模式
2021/09/04 Python
Android使用EventBus发送消息,Fragment中接收消息的方法会执行多次
2022/04/24 Java/Android