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 相关文章推荐
构建简单的Webmail系统
Oct 09 PHP
php做下载文件的实现代码及文件名中乱码解决方法
Feb 03 PHP
Trying to clone an uncloneable object of class Imagic的解决方法
Jan 11 PHP
用Json实现PHP与JavaScript间数据交换的方法详解
Jun 20 PHP
PHP制作百度词典查词采集器
Jan 29 PHP
详解PHP对数组的定义以及数组的创建方法
Nov 27 PHP
Yii2.0中使用js异步删除示例
Mar 10 PHP
PHP堆栈调试操作简单示例
Jun 15 PHP
php中如何执行linux命令详解
Nov 06 PHP
PHP Swoole异步读取、写入文件操作示例
Oct 24 PHP
YII2框架中ActiveDataProvider与GridView的配合使用操作示例
Mar 18 PHP
PHP 裁剪图片
Mar 09 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
CPU步进是什么意思?i3-9100F B0步进和U0步进区别知识科普
2020/03/17 数码科技
Zend Studio 无法启动的问题解决方法
2008/12/04 PHP
php 魔术函数使用说明
2010/02/21 PHP
三个思路解决laravel上传文件报错:413 Request Entity Too Large问题
2017/11/13 PHP
PHP如何通过表单直接提交大文件详解
2019/01/08 PHP
php使用curl模拟多线程实现批处理功能示例
2019/07/25 PHP
js去除重复字符串两种实现方法
2013/01/09 Javascript
javascript获取隐藏dom的宽高 具体实现
2013/07/14 Javascript
js判断上传文件的类型和大小示例代码
2013/10/18 Javascript
js AppendChild与insertBefore用法详细对比
2013/12/16 Javascript
js动态添加onclick事件可传参数与不传参数
2014/07/29 Javascript
Vuex2.0+Vue2.0构建备忘录应用实践
2016/11/30 Javascript
jquery实现页面加载效果
2017/02/21 Javascript
JS中利用FileReader实现上传图片前本地预览功能
2018/03/02 Javascript
在vue项目中使用md5加密的方法
2018/09/14 Javascript
Vue项目中最新用到的一些实用小技巧
2018/11/06 Javascript
layui 图片上传+表单提交+ Spring MVC的实例
2019/09/21 Javascript
JavaScript实现网页跨年倒计时
2020/12/02 Javascript
python中map、any、all函数用法分析
2015/04/21 Python
Python实现发送QQ邮件的封装
2017/07/14 Python
Python实现的矩阵类实例
2017/08/22 Python
win10下Python3.6安装、配置以及pip安装包教程
2017/10/01 Python
Python编程使用NLTK进行自然语言处理详解
2017/11/16 Python
使用Python实现从各个子文件夹中复制指定文件的方法
2018/10/25 Python
python super的使用方法及实例详解
2019/09/25 Python
Python爬虫库BeautifulSoup的介绍与简单使用实例
2020/01/25 Python
Django rest framework分页接口实现原理解析
2020/08/21 Python
python UIAutomator2使用超详细教程
2021/02/19 Python
html5教程制作简单画板代码分享
2013/12/04 HTML / CSS
详解如何通过H5(浏览器/WebView/其他)唤起本地app
2017/12/11 HTML / CSS
英国床垫在线:Mattress Online
2016/12/07 全球购物
面向对象编程OOP的优点
2013/01/22 面试题
XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式?
2016/01/12 面试题
pandas中DataFrame检测重复值的实现
2021/05/26 Python
python之django路由和视图案例教程
2021/07/26 Python
SQL Server中搜索特定的对象
2022/05/25 SQL Server