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 相关文章推荐
QueryPath PHP 中的jQuery
Apr 11 PHP
PHP设计模式之代理模式的深入解析
Jun 13 PHP
php 模拟POST提交的2种方法详解
Jun 17 PHP
PHP-Fcgi下PHP的执行时间设置方法
Aug 02 PHP
php数组转换js数组操作及json_encode的用法详解
Oct 26 PHP
php不允许用户提交空表单(php空值判断)
Nov 12 PHP
thinkphp控制器调度使用示例
Feb 24 PHP
PHP计算加权平均数的方法
Jul 16 PHP
PHPCMS2008广告模板SQL注入漏洞修复
Oct 11 PHP
thinkPHP5实现的查询数据库并返回json数据实例
Oct 23 PHP
Laravel 实现Controller向blade前台模板赋值的四种方式小结
Oct 22 PHP
php连接mysql之mysql_connect()与mysqli_connect()的区别
Jul 19 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数组保存文本与文本反编成数组实例
2014/11/13 PHP
php基于Redis消息队列实现的消息推送的方法
2018/11/28 PHP
对xmlHttp对象方法和属性的理解
2011/01/17 Javascript
表头固定(利用jquery实现原理介绍)
2012/11/08 Javascript
Jquery 模板数据绑定插件的使用方法详解
2013/07/08 Javascript
jqGrid增加时--判断开始日期与结束日期(实例解析)
2013/11/08 Javascript
删除javascript中注释语句的正则表达式
2014/06/11 Javascript
js实现百度联盟中一款不错的图片切换效果完整实例
2015/03/04 Javascript
D3.js实现柱状图的方法详解
2016/09/21 Javascript
JavaScript数组去重的6个方法
2017/01/21 Javascript
JavaScript实现的商品抢购倒计时功能示例
2017/04/17 Javascript
AngularJS封装$http.post()实例详解
2017/05/06 Javascript
JavaScript实现简单评论功能
2017/08/17 Javascript
基于vue.js实现的分页
2018/03/13 Javascript
Vue项目中最新用到的一些实用小技巧
2018/11/06 Javascript
layui 表单标签的校验方法
2019/09/04 Javascript
Python 爬虫学习笔记之正则表达式
2016/09/21 Python
Python中.py文件打包成exe可执行文件详解
2017/03/22 Python
python 第三方库的安装及pip的使用详解
2017/05/11 Python
Python使用Dijkstra算法实现求解图中最短路径距离问题详解
2018/05/16 Python
python解决字符串倒序输出的问题
2018/06/25 Python
详解Python中pandas的安装操作说明(傻瓜版)
2019/04/08 Python
python3爬虫学习之数据存储txt的案例详解
2019/04/24 Python
Django 响应数据response的返回源码详解
2019/08/06 Python
Python for循环及基础用法详解
2019/11/08 Python
python shutil文件操作工具使用实例分析
2019/12/25 Python
Python3 hashlib密码散列算法原理详解
2020/03/30 Python
PyQt5实现画布小程序
2020/05/30 Python
快速解释如何使用pandas的inplace参数的使用
2020/07/23 Python
python查询MySQL将数据写入Excel
2020/10/29 Python
html5声频audio和视频video等新特性详细说明
2012/12/26 HTML / CSS
Html5移动端适配IphoneX等机型的方法
2019/06/25 HTML / CSS
德国EGOIST网店:销售畅销的设计师品牌
2017/04/18 全球购物
电厂厂长岗位职责
2014/01/02 职场文书
物流专员岗位职责
2014/02/17 职场文书
python读取mat文件生成h5文件的实现
2022/07/15 Python