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 相关文章推荐
mysql_fetch_assoc和mysql_fetch_row的功能加起来就是mysql_fetch_array
Jan 15 PHP
php下用GD生成生成缩略图的两个选择和区别
Apr 17 PHP
PHP下使用CURL方式POST数据至API接口的代码
Feb 14 PHP
Windows7下的php环境配置教程
Feb 28 PHP
php实现字符串首字母转换成大写的方法
Mar 17 PHP
PHP访问数据库集群的方法小结
Mar 14 PHP
PHPCMS2008广告模板SQL注入漏洞修复
Oct 11 PHP
PHP实现上传图片到 zimg 服务器
Oct 19 PHP
详解yii2实现分库分表的方案与思路
Feb 03 PHP
thinkPHP5.0框架事务处理操作简单示例
Sep 07 PHP
PHP中通过getopt解析GNU C风格命令行选项
Nov 18 PHP
Thinkphp集成抖音SDK的实现方法
Apr 28 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原理之错误抑制与内嵌HTML分析
2011/05/02 PHP
解析PHP强制转换类型及远程管理插件的安全隐患
2014/06/30 PHP
php生成百度sitemap站点地图类函数实例
2014/10/17 PHP
php查询whois信息的方法
2015/06/08 PHP
ubuntu下配置nginx+php+mysql详解
2015/09/10 PHP
WordPress中用于更新伪静态规则的PHP代码实例讲解
2015/12/18 PHP
使用Object.defineProperty实现简单的js双向绑定
2016/04/15 Javascript
Jquery实现的简单轮播效果【附实例】
2016/04/19 Javascript
AngularJS基础 ng-mouseleave 指令详解
2016/08/02 Javascript
微信小程序 页面跳转和数据传递实例详解
2017/01/19 Javascript
Nodejs实现文件上传的示例代码
2017/09/26 NodeJs
vue+Java后端进行调试时解决跨域问题的方式
2017/10/19 Javascript
详解IWinter 一个路由转控制器的 Nodejs 库
2017/11/15 NodeJs
vue-router路由懒加载和权限控制详解
2017/12/13 Javascript
使用淘宝镜像cnpm安装Vue.js的图文教程
2018/05/17 Javascript
解决在vue项目中webpack打包后字体不生效的问题
2018/09/01 Javascript
vue中多个倒计时实现代码实例
2019/03/27 Javascript
vue实现分环境打包步骤(给不同的环境配置相对应的打包命令)
2019/06/04 Javascript
layUI实现列表查询功能
2019/07/27 Javascript
微信小程序iOS下拉白屏晃动问题解决方案
2019/10/12 Javascript
python基于windows平台锁定键盘输入的方法
2015/03/05 Python
Python计算回文数的方法
2015/03/11 Python
python Django批量导入数据
2016/03/25 Python
python list转矩阵的实例讲解
2018/08/04 Python
使用python实现快速搭建简易的FTP服务器
2018/09/12 Python
opencv 形态学变换(开运算,闭运算,梯度运算)
2020/07/07 Python
AmazeUI图片轮播效果的示例代码
2020/08/20 HTML / CSS
ONLY德国官方在线商店:购买时尚女装
2017/09/21 全球购物
小学优秀班集体申报材料
2014/05/25 职场文书
小学教育见习报告
2014/10/31 职场文书
会计求职自荐信范文
2015/03/04 职场文书
小学校园广播稿
2015/08/18 职场文书
家庭教育培训学习心得体会
2016/01/14 职场文书
正确使用MySQL INSERT INTO语句
2021/05/26 MySQL
MySQL实现字段分割一行转多行的示例代码
2022/07/07 MySQL
apache虚拟主机配置的三种方式(小结)
2022/07/23 Servers