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实现将GB编码转换为UTF8
Nov 25 PHP
PHP中Date获取时间不正确怎么办
Jun 05 PHP
php 进度条实现代码
Mar 10 PHP
php 字符串函数收集
Mar 29 PHP
基于php常用函数总结(数组,字符串,时间,文件操作)
Jun 27 PHP
PHP的基本常识小结
Jul 05 PHP
几个实用的PHP内置函数使用指南
Nov 27 PHP
php通过asort()给关联数组按照值排序的方法
Mar 18 PHP
php简单smarty入门程序实例
Jun 11 PHP
PHP的RSA加密解密方法以及开发接口使用
Feb 11 PHP
Thinkphp 框架扩展之行为扩展原理与实现方法分析
Apr 23 PHP
解决PhpStorm64不能启动的问题
Jun 20 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
用Flash图形化数据(二)
2006/10/09 PHP
PHP数组实例总结与说明
2011/08/23 PHP
PHP中array_merge和array相加的区别分析
2013/06/17 PHP
Laravel 5.4前后台分离,通过不同的二级域名访问方法
2019/10/13 PHP
PHP常见的序列化与反序列化操作实例分析
2019/10/28 PHP
php pdo连接数据库操作示例
2019/11/18 PHP
禁止直接访问php文件代码分享
2020/05/05 PHP
静态图片的十一种滤镜效果--不支持Ie7及非IE浏览器。
2007/03/06 Javascript
EasyUI中的tree用法介绍
2011/11/01 Javascript
ASP.NET jQuery 实例5 (显示CheckBoxList成员选中的内容)
2012/01/13 Javascript
javascript控制swfObject应用介绍
2012/11/29 Javascript
jquery动态添加option示例
2013/12/30 Javascript
详解Javascript动态操作CSS
2014/12/08 Javascript
jQuery实现Div拖动+键盘控制综合效果的方法
2015/03/10 Javascript
jquery实现简单实用的打分程序实例
2015/07/23 Javascript
深入解析JavaScript中的数字对象与字符串对象
2015/10/21 Javascript
vue router动态路由下让每个子路由都是独立组件的解决方案
2018/04/24 Javascript
JavaScript去掉数组重复项的方法分析【测试可用】
2018/07/19 Javascript
iview实现select tree树形下拉框的示例代码
2018/12/21 Javascript
原生js实现轮播图特效
2020/05/04 Javascript
Jquery Fade用法详解
2020/11/06 jQuery
python实现2048小游戏
2015/03/30 Python
python实现解数独程序代码
2017/04/12 Python
Python数据结构与算法之图的基本实现及迭代器实例详解
2017/12/12 Python
flask中过滤器的使用详解
2018/08/01 Python
python爬虫获取百度首页内容教学
2018/12/23 Python
python3使用matplotlib绘制条形图
2020/03/25 Python
快速解决vue.js 模板和jinja 模板冲突的问题
2019/07/26 Python
使用Python测试Ping主机IP和某端口是否开放的实例
2019/12/17 Python
如何使用scrapy中的ItemLoader提取数据
2020/09/30 Python
Python使用tkinter制作在线翻译软件
2021/02/22 Python
见习报告格式范文
2014/11/08 职场文书
优秀大学生申请书
2019/06/24 职场文书
php 原生分页
2021/04/01 PHP
python 如何获取页面所有a标签下href的值
2021/05/06 Python
聊一聊python常用的编程模块
2021/05/14 Python