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访问查询mysql数据的三种方法
Oct 09 PHP
php下HTTP Response中的Chunked编码实现方法
Nov 19 PHP
php 数组的创建、调用和更新实现代码
Mar 09 PHP
php 数学运算验证码实现代码
Oct 11 PHP
谨慎使用PHP的引用原因分析
Sep 06 PHP
(PHP实现)只使用++运算实现加法,减法,乘法,除法
Jun 27 PHP
深入浅析PHP7.0新特征(五大新特征)
Oct 29 PHP
PHP导出Excel实例讲解
Jan 24 PHP
PHP使用http_build_query()构造URL字符串的方法
Apr 02 PHP
PHP编程快速实现数组去重的方法详解
Jul 22 PHP
PHP性能测试工具xhprof安装与使用方法详解
Apr 29 PHP
Laravel 5.5 异常处理 &amp; 错误日志的解决
Oct 17 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
在线短消息收发的程序,不用数据库
2006/10/09 PHP
apache配置虚拟主机的方法详解
2013/06/17 PHP
线路分流自动跳转代码;希望对大家有用!
2006/12/02 Javascript
javascript showModalDialog,open取得父窗口的方法
2010/03/10 Javascript
js作用域及作用域链概念理解及使用
2013/04/15 Javascript
高效率JavaScript编写技巧整理
2013/08/23 Javascript
js 自动播放的实例代码
2013/11/19 Javascript
js中的json对象详细介绍
2014/10/29 Javascript
JS数组排序技巧汇总(冒泡、sort、快速、希尔等排序)
2015/11/24 Javascript
React + webpack 环境配置的方法步骤
2017/09/07 Javascript
关于vue单文件中引用路径的处理方法
2018/01/08 Javascript
打通前后端构建一个Vue+Express的开发环境
2018/07/17 Javascript
jQuery实现验证用户登录
2019/12/10 jQuery
Element InfiniteScroll无限滚动的具体使用方法
2020/07/27 Javascript
Vue实现导航栏菜单
2020/08/19 Javascript
[02:55]2018DOTA2国际邀请赛勇士令状不朽珍藏Ⅲ饰品一览
2018/08/01 DOTA
[54:57]DOTA2-DPC中国联赛定级赛 Aster vs DLG BO3第二场 1月8日
2021/03/11 DOTA
python高并发异步服务器核心库forkcore使用方法
2013/11/26 Python
Python实现的Kmeans++算法实例
2014/04/26 Python
在Python中使用defaultdict初始化字典以及应用方法
2018/10/31 Python
pyqt5 键盘监听按下enter 就登陆的实例
2019/06/25 Python
对python中 math模块下 atan 和 atan2的区别详解
2020/01/17 Python
Django之choices选项和富文本编辑器的使用详解
2020/04/01 Python
在python中list作函数形参,防止被实参修改的实现方法
2020/06/05 Python
如何将json数据转换为python数据
2020/09/04 Python
使用sublime text3搭建Python编辑环境的实现
2021/01/12 Python
Desigual德国官网:在线购买原创服装
2018/03/27 全球购物
英国护发和美妆在线商店:Klip Shop
2019/03/24 全球购物
澳大利亚在线高跟鞋商店:Shoe Me
2019/11/19 全球购物
上班睡觉检讨书
2014/01/09 职场文书
技术总监管理职责范本
2014/03/06 职场文书
优秀大学生求职自荐信范文
2014/04/19 职场文书
2014年团支书工作总结
2014/11/14 职场文书
英语复习计划
2015/01/19 职场文书
2016简单的租房合同范本
2016/03/18 职场文书
门面租赁合同范文
2019/08/06 职场文书