function C($name=null, $value=null,$default=null) {
static $_config = array();
// 无参数时获取所有
if (empty($name)) {
return $_config;
}
// 优先执行设置获取或赋值
if (is_string($name)) {
if (!strpos($name, '.')) {
$name = strtolower($name);
if (is_null($value))
return isset($_config[$name]) ? $_config[$name] : $default;
$_config[$name] = $value;
return;
}
// 二维数组设置和获取支持
$name = explode('.', $name);
$name[0] = strtolower($name[0]);
if (is_null($value))
return isset($_config[$name[0]][$name[1]]) ? $_config[$name[0]][$name[1]] : $default;
$_config[$name[0]][$name[1]] = $value;
return;
}
// 批量设置
if (is_array($name)){
$_config = array_merge($_config, array_change_key_case($name));
return;
}
return null; // 避免非法参数
}

这是thinkphp中function.php里面定义的函数。 

详解:

此函数功能有:

1、获得$_config数组,其中保存着配置信息(静态变量只初始化一次,函数执行完毕,值不会消失)

print_r(C()); // 这样能获得所有已读取或设置的配置信息

2、读取配置的值

echo C('key');
echo C('key.subkey');
//二维数组的读取,对应的配置文件结构为
return array(
  'key'=>array('subkey','value'),
)

  

3、动态添加配置

C('key','value');
C('key.subkey','value');

  

C函数实现的关键点:

1、static $_config = array(); 把$_config设置为静态变量,使其能够存储值

2、配置文件的写法。

return $arr = array(
'key1'=>'value';
'key2'=>array('subkey','value'),
);
/*
注意开头的return,当include这个文件时,返回的就是这个return返回的值
*/

启发:

开发项目的时候可以借鉴,这个函数处理系统的配置还是很好用的。  

  

 

 

最新文章

  1. 微软“.Net社区虚拟大会”dotnetConf2015:关键词:.NET 创新、开源、跨平台
  2. linux部署war包方案
  3. 【转】mac/linux终端光标的快捷键操作
  4. VS快捷键的简单总结
  5. jQuerySchool
  6. iOS 下拉菜单 FFDropDownMenu自定义下拉菜单样式实战-b
  7. SaaS系列介绍之九: SaaS营销模式分析
  8. 图片上传并显示(兼容ie),图片大小判断
  9. odi增量更新策略
  10. Get Cordova Ready for Grunt and CoffeeScript
  11. 销量预测和用户行为的分析--基于ERP的交易数据
  12. 使用ip开头的工具,而不是只会ifconfig
  13. FORTH 虚拟机内部结构
  14. F(x) 数位dp
  15. halcon 创建region的最大尺寸问题
  16. PythonStudy——名称空间 Name space
  17. flask-日料网站搭建-后台登录
  18. BZOJ 4706: B君的多边形 找规律
  19. SPOJ IM - Intergalactic Map - [拆点最大流]
  20. PyQt4(简单界面)

热门文章

  1. PowerShell脚本授权最佳实践
  2. Jenkins拾遗--第一篇(安装Jenkins)
  3. apache的/etc/httpd/conf/httpd.conf和/usr/local/apache2/conf/httpd.conf区别
  4. MySQL隐式转换测试
  5. appium+python的APP自动化(1)
  6. Python——初识Python
  7. hadoop2.5.2学习及实践笔记(一)—— 伪分布式学习环境搭建
  8. mogodb gui
  9. 路由器配置PPP协议 CHAP验证 PAP验证
  10. Bsd内核选项总结