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环境配置 php5 mysql5 apache2 phpmyadmin安装与配置
Nov 17 PHP
深思 PHP 数组遍历的差异(array_diff 的实现)
Mar 23 PHP
php用数组返回无限分类的列表数据的代码
Aug 08 PHP
浅析PHP微信支付通知的处理方式
May 25 PHP
一个经典实用的PHP图像处理类分享
Nov 18 PHP
php 实现进制相互转换
Apr 07 PHP
php实现base64图片上传方式实例代码
Feb 22 PHP
Paypal实现循环扣款(订阅)功能
Mar 23 PHP
详解PHP函数 strip_tags 处理字符串缺陷bug
Jun 11 PHP
PHP实现将几张照片拼接到一起的合成图片功能【便于整体打印输出】
Nov 14 PHP
gearman管理工具GearmanManager的安装与php使用方法示例
Feb 27 PHP
Thinkphp 框架扩展之类库扩展操作详解
Apr 23 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
php5.3提示Function ereg() is deprecated Error问题解决方法
2014/11/12 PHP
php自定义函数实现二维数组按指定key排序的方法
2016/09/29 PHP
thinkphp分页集成实例
2017/07/24 PHP
PHP+RabbitMQ实现消息队列的完整代码
2019/03/20 PHP
关于可运行代码无法正常执行的使用说明
2010/05/13 Javascript
动态载入/删除/更新外部 JavaScript/Css 文件的代码
2010/07/03 Javascript
JS中showModalDialog 的使用解析
2013/04/17 Javascript
js实现日历可获得指定日期周数及星期几示例分享(js获取星期几)
2014/03/14 Javascript
js创建对象的区别示例介绍
2014/07/24 Javascript
jQuery实现平滑滚动的标签分栏切换效果
2015/08/28 Javascript
JavaScript中实现Map的示例代码
2015/09/09 Javascript
2016年最热门的15 款代码语法高亮工具,美化你的代码
2016/01/06 Javascript
JQuery EasyUI的一些常用组件
2017/07/12 jQuery
JavaScript显式数据类型转换详解
2019/03/18 Javascript
layer.open弹层查看缩略图的原图,自适应大小的实例
2019/09/05 Javascript
JavaScript实现留言板案例
2020/03/17 Javascript
微信小程序获取当前时间及星期几的实例代码
2020/09/20 Javascript
Python3.4实现从HTTP代理网站批量获取代理并筛选的方法示例
2017/09/26 Python
python 删除字符串中连续多个空格并保留一个的方法
2018/12/22 Python
基于python cut和qcut的用法及区别详解
2019/11/22 Python
基于IE10/HTML5 开发
2013/04/22 HTML / CSS
详解Canvas实用库Fabric.js使用手册
2019/01/07 HTML / CSS
Notino意大利:购买香水和化妆品
2018/11/14 全球购物
新闻专业应届生求职信
2013/10/31 职场文书
师范大学毕业自我鉴定
2013/11/21 职场文书
客房主管岗位职责
2013/12/09 职场文书
服装店营销方案
2014/03/10 职场文书
大学生实习鉴定评语
2014/04/25 职场文书
竞选班委演讲稿
2014/04/28 职场文书
五一口号
2014/06/19 职场文书
欢迎领导检查标语
2014/06/27 职场文书
人事专员岗位说明书
2014/07/29 职场文书
经济贸易系求职信
2014/08/04 职场文书
月度优秀员工获奖感言
2014/08/16 职场文书
2014年度工作总结报告
2014/12/15 职场文书
一文帮你理解PReact10.5.13源码
2021/04/03 Javascript