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初学者头疼十四条问题大总结
Nov 12 PHP
php shell超强免杀、减少体积工具实现代码
Oct 16 PHP
PHP将XML转数组过程详解
Nov 13 PHP
ThinkPHP调试模式与日志记录概述
Aug 22 PHP
php中in_array函数用法分析
Nov 15 PHP
php中current、next与reset函数用法实例
Nov 17 PHP
PHP中__FILE__、dirname与basename用法实例分析
Dec 01 PHP
详解WordPress中的头像缓存和代理中的缓存更新方法
Mar 01 PHP
php版微信自动获取收货地址api用法示例
Sep 22 PHP
thinkPHP多语言切换设置方法详解
Nov 11 PHP
PHP开发中解决并发问题的几种实现方法分析
Nov 13 PHP
Yii 框架使用Forms操作详解
May 18 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
当海贼王变成JOJO风
2020/03/02 日漫
PHP语法速查表
2007/01/02 PHP
Window 7/XP 安装Apache 2.4与PHP 5.4 的过程详解
2013/06/02 PHP
php验证session无效的解决方法
2014/11/04 PHP
PHP的压缩函数实现:gzencode、gzdeflate和gzcompress的区别
2016/01/27 PHP
PHP获取星期几的常用方法小结
2018/12/18 PHP
jQuery中append、insertBefore、after与insertAfter的简单用法与注意事项
2020/04/04 Javascript
在Javascript中 声明时用&quot;var&quot;与不用&quot;var&quot;的区别
2013/04/15 Javascript
Jquery中给animation加更多的运作效果实例
2013/09/05 Javascript
使用jquery+CSS实现控制打印样式
2014/12/31 Javascript
JavaScript中DOM详解
2015/04/13 Javascript
纯HTML5制作围住神经猫游戏-附源码下载
2015/08/23 Javascript
图片旋转、鼠标滚轮缩放、镜像、切换图片js代码
2020/12/13 Javascript
jQuery EasyUI API 中文帮助文档和扩展实例
2016/08/01 Javascript
jQuery替换节点用法示例(使用replaceWith方法)
2016/09/08 Javascript
js判断文件格式及大小的简单实例(必看)
2016/10/11 Javascript
微信小程序之页面拦截器的示例代码
2017/09/07 Javascript
vue实现页面加载动画效果
2017/09/19 Javascript
canvas+gif.js打造自己的数字雨头像的示例代码
2017/10/26 Javascript
浅谈vue同一页面中拥有两个表单时,的验证问题
2018/09/18 Javascript
Webpack4 使用Babel处理ES6语法的方法示例
2019/03/07 Javascript
详解babel升级到7.X采坑总结
2019/05/12 Javascript
js canvas实现星空连线背景特效
2019/11/01 Javascript
Python机器学习之决策树算法
2017/12/22 Python
django的登录注册系统的示例代码
2018/05/14 Python
Python使用numpy模块创建数组操作示例
2018/06/20 Python
Python3.5内置模块之random模块用法实例分析
2019/04/26 Python
CSS3 实现穿梭星空动画
2020/11/13 HTML / CSS
Lookfantastic德国官网:英国知名美妆购物网站
2017/06/11 全球购物
Speedo速比涛中国官方网站:全球领先泳装运动品牌
2018/04/24 全球购物
澳大利亚制造的蜡烛和扩散器:Glasshouse Fragrances
2018/05/20 全球购物
JD Sports比利时官网:英国领先的运动鞋和运动服饰零售商
2018/10/10 全球购物
西铁城美国官方网站:Citizen Watch美国
2019/11/08 全球购物
物控部经理职务说明书
2014/02/25 职场文书
实习员工转正的评语汇总,以备不时之需
2019/12/17 职场文书
golang中的空接口使用详解
2021/03/30 Python