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获取金书网的书名的实现代码
Jun 11 PHP
PHP 透明水印生成代码
Aug 27 PHP
解决PHP超大文件下载,断点续传下载的方法详解
Jun 06 PHP
php实现aes加密类分享
Feb 16 PHP
php+memcache实现的网站在线人数统计代码
Jul 04 PHP
PHP多线程之内部多线程实例分析
Mar 09 PHP
phpStudy配置多站点多域名和多端口的方法
Sep 01 PHP
PHP编程实现的TCP服务端和客户端功能示例
Apr 13 PHP
ThinkPHP中图片按比例切割的代码实例
Mar 08 PHP
thinkPHP5使用Rabc实现权限管理
Aug 28 PHP
Laravel实现通过blade模板引擎渲染视图
Oct 25 PHP
Laravel Reponse响应客户端示例详解
Sep 03 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
使用无限生命期Session的方法
2006/10/09 PHP
PHP函数之error_reporting(E_ALL ^ E_NOTICE)详细说明
2011/07/01 PHP
php实现检查文章是否被百度收录
2015/01/27 PHP
php对象工厂类完整示例
2018/08/09 PHP
JavaScript聚焦于第一个字段的代码
2010/10/15 Javascript
javascript开发随笔二 动态加载js和文件
2011/11/25 Javascript
详解jquery uploadify 上传文件
2013/11/09 Javascript
JS函数重载的解决方案
2014/05/13 Javascript
基于OL2实现百度地图ABCD marker的效果
2015/10/01 Javascript
Jquery跨域获得Json的简单实例
2016/05/18 Javascript
VueRouter导航守卫用法详解
2017/12/25 Javascript
从0到1构建vueSSR项目之路由的构建
2019/03/07 Javascript
JS实现导航栏楼层特效
2020/01/01 Javascript
Vue路由管理器Vue-router的使用方法详解
2020/02/05 Javascript
解决vue watch数据的方法被调用了两次的问题
2020/11/07 Javascript
[01:08:09]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#1Liquid VS Alliance第二局
2016/03/02 DOTA
解决pandas read_csv 读取中文列标题文件报错的问题
2018/06/15 Python
Python从ZabbixAPI获取信息及实现Zabbix-API 监控的方法
2018/09/17 Python
Python用5行代码写一个自定义简单二维码
2018/10/21 Python
利用pyuic5将ui文件转换为py文件的方法
2019/06/19 Python
Pytorch的mean和std调查实例
2020/01/02 Python
使用Python爬虫库BeautifulSoup遍历文档树并对标签进行操作详解
2020/01/25 Python
python统计文章中单词出现次数实例
2020/02/27 Python
Python脚本实现监听服务器的思路代码详解
2020/05/28 Python
python批量合成bilibili的m4s缓存文件为MP4格式 ver2.5
2020/12/01 Python
class类在python中获取金融数据的实例方法
2020/12/10 Python
Pandora西班牙官方商店:PandoraShop.es
2020/10/05 全球购物
如何查找网页漏洞
2016/06/22 面试题
班级光棍节联谊会策划书
2014/10/10 职场文书
信访稳定工作汇报
2014/10/27 职场文书
2016五一手机促销广告语
2016/01/28 职场文书
详解Laravel制作API接口
2021/05/31 PHP
新手初学Java List 接口
2021/07/07 Java/Android
postgresql 删除重复数据案例详解
2021/08/02 PostgreSQL
SpringBoot2零基础到精通之数据库专项精讲
2022/03/22 Java/Android
vue ant design 封装弹窗表单的使用
2022/06/01 Vue.js