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 相关文章推荐
模拟xcopy的函数
Oct 09 PHP
Ajax PHP分页演示
Jan 02 PHP
php 删除cookie和浏览器重定向
Mar 16 PHP
浏览器关闭后,能继续执行的php函数(ignore_user_abort)
Aug 01 PHP
php判断终端是手机还是电脑访问网站的思路及代码
Apr 24 PHP
php实现的css文件背景图片下载器代码
Nov 11 PHP
php定时执行任务设置详解
Feb 06 PHP
浅谈php7的重大新特性
Oct 23 PHP
PHPWind9.0手动屏蔽验证码解决后台关闭验证码但是依然显示的问题
Aug 12 PHP
php计算多个集合的笛卡尔积实例详解
Feb 16 PHP
laravel实现上传图片,并且制作缩略图,按照日期存放的代码
Oct 16 PHP
one.php 多项目、函数库、类库 统一为一个版本的方法
Aug 24 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
超人钢铁侠联手合作?美漫作家呼吁DC漫威合作联动以抵抗疫情
2020/04/09 欧美动漫
用php随机生成福彩双色球号码的2种方法
2013/02/04 PHP
用js实现多域名不同文件的调用方法
2007/01/12 Javascript
Javascript中克隆一个数组的实现代码
2013/12/06 Javascript
jquery trigger伪造a标签的click事件取代window.open方法
2014/06/23 Javascript
JS JQUERY实现滚动条自动滚到底的方法
2015/01/09 Javascript
javascript同步服务器时间和同步倒计时小技巧
2015/09/24 Javascript
js获取表格的行数和列数的方法
2015/10/23 Javascript
微信小程序 地图(map)实例详解
2016/11/16 Javascript
利用JS实现页面删除并重新排序功能
2016/12/09 Javascript
JavaScript简单生成 N~M 之间随机数的方法
2017/01/13 Javascript
Angular多选、全选、批量选择操作实例代码
2017/03/10 Javascript
vue 2.0项目中如何引入element-ui详解
2017/09/06 Javascript
postman自定义函数实现 时间函数的思路详解
2019/04/17 Javascript
vue项目首屏加载时间优化实战
2019/04/23 Javascript
微信小程序连续签到7天积分获得功能的示例代码
2020/08/20 Javascript
Vue 的 v-model用法实例
2020/11/23 Vue.js
python使用paramiko实现远程拷贝文件的方法
2016/04/18 Python
Python中扩展包的安装方法详解
2017/06/14 Python
用Eclipse写python程序
2018/02/10 Python
Python学习小技巧总结
2018/06/10 Python
Python基于Tkinter模块实现的弹球小游戏
2018/12/27 Python
基于Django的乐观锁与悲观锁解决订单并发问题详解
2019/07/31 Python
浅谈selenium如何应对网页内容需要鼠标滚动加载的问题
2020/03/14 Python
世界上最受欢迎的钓鱼诱饵:Rapala
2019/05/02 全球购物
高级护理实习生自荐信
2013/09/28 职场文书
护理学中专毕业生求职信
2013/11/11 职场文书
化学教学随笔感言
2014/02/19 职场文书
财务人员的自我评价范文
2014/03/03 职场文书
《风筝》教学反思
2014/04/10 职场文书
社区矫正工作方案
2014/06/04 职场文书
事业单位个人查摆问题及整改措施
2014/10/28 职场文书
2015年城市管理工作总结
2015/05/23 职场文书
2016年会领导致辞稿
2015/07/29 职场文书
幼儿园语言教学反思
2016/02/23 职场文书
小学2016年第十八届推普周活动总结
2016/04/05 职场文书