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实现变色验证码实例
Jan 06 PHP
php 获取页面中指定内容的实现类
Jan 23 PHP
解决CodeIgniter伪静态失效
Jun 09 PHP
完美解决thinkphp验证码出错无法显示的方法
Dec 09 PHP
Laravel 5.0 发布 新版本特性详解
Feb 10 PHP
php随机生成数字字母组合的方法
Mar 18 PHP
帝国cms目录结构分享
Jul 06 PHP
PHP实现文件上传和多文件上传
Dec 24 PHP
解析WordPress中的post_class与get_post_class函数
Jan 04 PHP
php实现文件上传及头像预览功能
Jan 15 PHP
Laravel学习教程之路由模块
Aug 18 PHP
PHP实现链表的定义与反转功能示例
Jun 09 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项目的方法
2006/10/09 PHP
php session和cookie使用说明
2010/04/07 PHP
php查看当前Session的ID实例
2015/03/16 PHP
php查询操作实现投票功能
2016/05/09 PHP
PHP表单验证内容是否为空的实现代码
2016/11/14 PHP
使用Apache的rewrite
2021/03/09 Servers
Firebug 字幕文件JSON地址获取代码
2009/10/28 Javascript
Javascript 定时器调用传递参数的方法
2009/11/12 Javascript
Chrome Form多次提交表单问题的解决方法
2011/05/09 Javascript
很全面的JavaScript常用功能汇总集合
2016/01/22 Javascript
jquery 标签 隔若干行加空白或者加虚线的方法
2016/12/07 Javascript
vue项目中使用axios上传图片等文件操作
2017/11/02 Javascript
Vue下拉框回显并默认选中随机问题
2018/09/06 Javascript
Vue的props父传子的示例代码
2020/05/20 Javascript
Python求两个list的差集、交集与并集的方法
2014/11/01 Python
python 实现红包随机生成算法的简单实例
2017/01/04 Python
不可错过的十本Python好书
2017/07/06 Python
PyQt5每天必学之进度条效果
2018/04/19 Python
python 多线程重启方法
2019/02/18 Python
TensorFlow实现简单的CNN的方法
2019/07/18 Python
django实现将修改好的新模型写入数据库
2020/03/31 Python
Tensorflow全局设置可见GPU编号操作
2020/06/30 Python
python+flask编写一个简单的登录接口
2020/11/13 Python
详解python3类型注释annotations实用案例
2021/01/20 Python
Python爬虫回测股票的实例讲解
2021/01/22 Python
Python3自带工具2to3.py 转换 Python2.x 代码到Python3的操作
2021/03/03 Python
HTML5 UTF-8 中文乱码的解决方法
2013/11/18 HTML / CSS
澳大利亚玩具剧场:Toy Playhouse
2019/03/03 全球购物
大学生社会实践评语
2014/04/25 职场文书
预备党员群众路线思想汇报2014
2014/10/25 职场文书
2015年市场营销工作总结
2015/07/23 职场文书
国家助学金受助感言
2015/08/01 职场文书
《刷子李》教学反思
2016/02/20 职场文书
2016年乡镇七一建党节活动总结
2016/04/05 职场文书
Nginx+Tomcat实现负载均衡、动静分离的原理解析
2021/03/31 Servers
Java输出Hello World完美过程解析
2021/06/13 Java/Android