thinkphp的c方法使用示例


Posted in PHP onFebruary 24, 2014

1.C方法的作用

a. 加载设置用户的配置,保存在一个C函数内的静态变量$_config 中

b. 读取用户的配置 (从$_congig 中读取)

2. 需求分析:

1.设置变量

1.二维数组

C(array('DB_PASSWORD'=>'root','DB_USERNAME'=>'root'),'DB');
C('DB.USER_NAME','XIAOCHEN);

2.一维数组

C('USER_NAME','小陈');
C(array('USER_NAME'=>'chen','USER_HEIGHT'=>'170'));

2.读取变量

一维:   C('USER_NAME');

二维:  C('DB.DB_PASSWORD');

3.调试时,查看所有的配置信息

C();

3.存放方式及为什么要这样存储?

首先我们来看一个问题$arr=array('db'=>'mysql','DB'=>'mysql','Db'=>'mysql'); 从这个数组我们可以看到db都是指向了mysql,但是在却占用了三个存放空间,在项目的开发不是由一个人完成,每个人的书写习惯可能不一样,所以为了避免这种情况,统一的下标转为小写(当然大写也是可以的),由于配置文件在中的数组只有最多只有二维,把一维数组的下标小写就够了

4.实战中是怎么用的?

php由于对数组的操作非常便捷,所以配置文件一般是写在一个配置文件中,以数组的形式返回

一般格式为:  

config.php<?  return array('DB'=>'mysql',......);

把变量写入到C中  :

C(include 'config.php');     写入后C('DB') 就可以获取值了

5.笔者写的  (新增动态添加二维配置的功能)

 

 C(array('name'=>'mysql','password'=>'root'),'db') 执行后array('db'=>array('name'=>'mysql','password'=>root))
 

代码示例:

function C($name=null,$value=null){
  static $_config = array();
   if(!is_null($name)){
    if(is_string($name)){
     if(is_null($value)){
      if(!strpos($name,'.')){
       $name = strtolower($name);
       return isset($_config[$name]) ? $_config[$name] : null; 
      }else{
       $name = explode('.',$name);
       $name[0] = strtolower($name[0]);
       return isset($_config[$name[0]][$name[1]]) ? $_config[$name[0]][$name[1]] : null;
      }
     }else{
      if(!strpos($name,'.')){
       $_config[strtolower($name)] = $value;
      }else{
       $name = explode('.',$name);
       $_config[strtolower($name[0])][$name[1]] = $value;
      }
      return ;
     }
    }elseif(is_array($name)){
     if(is_null($value))
      $_config = array_merge($_config,$name);
     else{
      $_config[$value] = $name;
     }
     return ;
    }
   }else{
       return empty($_config) ? null: $_config;
  }
}
PHP 相关文章推荐
php 文件上传类代码
Aug 06 PHP
smarty获得当前url的方法分享
Feb 14 PHP
phplot生成图片类用法详解
Jan 06 PHP
PHP利用APC模块实现文件上传进度条的方法
Jan 26 PHP
php实现遍历多维数组的方法
Nov 25 PHP
WordPress中设置Post Type自定义文章类型的实例教程
May 10 PHP
php用户登录之cookie信息安全分析
May 13 PHP
Thinkphp框架中D方法与M方法的区别
Dec 23 PHP
thinkphp实现附件上传功能
May 26 PHP
PHP数据分析引擎计算余弦相似度算法示例
Aug 08 PHP
php 使用mpdf实现指定字段配置字体样式的方法
Jul 29 PHP
Yii2框架中一些折磨人的坑
Dec 15 PHP
php根据操作系统转换文件名大小写的方法
Feb 24 #PHP
PHP获取本周第一天和最后一天示例代码
Feb 24 #PHP
thinkphp控制器调度使用示例
Feb 24 #PHP
thinkphp路由规则使用示例详解和伪静态功能实现(apache重写)
Feb 24 #PHP
将php数组输出html表格的方法
Feb 24 #PHP
php格式化日期和时间格式化示例分享
Feb 24 #PHP
php目录操作实例代码
Feb 21 #PHP
You might like
PHP autoload与spl_autoload自动加载机制的深入理解
2013/06/05 PHP
php进行支付宝开发中return_url和notify_url的区别分析
2014/12/22 PHP
简单实现php上传文件功能
2017/09/21 PHP
PHP PDO和消息队列的个人理解与应用实例分析
2019/11/25 PHP
一个对于js this关键字的问题
2007/01/09 Javascript
tbody元素支持嵌套的注意方法
2007/03/24 Javascript
document.documentElement &amp;&amp; document.documentElement.scrollTop
2007/12/01 Javascript
jquery 新手学习常见问题解决方法
2010/04/18 Javascript
JavaScript基础语法让人疑惑的地方小结
2012/05/23 Javascript
JS正则验证邮箱的格式详细介绍
2013/11/19 Javascript
javascript制作坦克大战全纪录(1)
2014/11/27 Javascript
JS返回iframe中frameBorder属性值的方法
2015/04/01 Javascript
Jquery ui datepicker设置日期范围,如只能隔3天【实现代码】
2016/05/04 Javascript
Vue.js每天必学之数据双向绑定
2016/09/05 Javascript
Bootstrap table表格简单操作
2017/02/07 Javascript
jQuery插件HighCharts绘制的基本折线图效果示例【附demo源码下载】
2017/03/07 Javascript
Angular父组件调用子组件的方法
2018/04/02 Javascript
如何使用vuex实现兄弟组件通信
2018/11/02 Javascript
微信小程序中的列表切换功能实例代码详解
2020/06/09 Javascript
typescript配置alias的详细步骤
2020/08/12 Javascript
nuxt 服务器渲染动态设置 title和seo关键字的操作
2020/11/05 Javascript
[32:07]完美世界DOTA2联赛PWL S3 LBZS vs Rebirth 第一场 12.16
2020/12/17 DOTA
Python使用matplotlib实现在坐标系中画一个矩形的方法
2015/05/20 Python
python使用arcpy.mapping模块批量出图
2017/03/06 Python
python中cPickle类使用方法详解
2018/08/27 Python
PYQT5开启多个线程和窗口,多线程与多窗口的交互实例
2019/12/13 Python
Python实现猜年龄游戏代码实例
2020/03/25 Python
如何解决cmd运行python提示不是内部命令
2020/07/01 Python
如何基于Python爬虫爬取美团酒店信息
2020/11/03 Python
Python 爬虫批量爬取网页图片保存到本地的实现代码
2020/12/24 Python
澳大利亚领先的睡衣品牌:Peter Alexander
2016/08/16 全球购物
如何用Python来进行查询和替换一个文本字符串
2014/01/02 面试题
大学开学计划书
2014/04/30 职场文书
注册资产评估专业求职信
2014/07/16 职场文书
2014高中生入党思想汇报范文
2014/09/13 职场文书
Python Flask请求扩展与中间件相关知识总结
2021/06/11 Python