thinkphp的c方法使用示例

  次阅读 来源:互联网(转载协议) 2016-03-01 14:00 我要评论(0)

用过thinkphp的朋友都知道,C()方法在整个框架中用的非常普遍,C方法的实现非常简单,但是功能非常强大,下面是C()方法的详解和使用示例

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 ;

}

本站部分文章来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 长虹新款智能语音空调,告诉你空调也能玩Siri

    长虹新款智能语音空调,告诉你空调也能玩Siri

  • 品友互动为Digital Travel APAC2018 唯一受邀中国AI企业

    品友互动为Digital Travel APAC2018 唯一受邀中国AI企业

  • 让AI触手可及  Qualcomm携手创通联达推出全新终端侧AI开发套件

    让AI触手可及 Qualcomm携手创通联达推出全新终端侧AI开发套件

  • 第一批国家重点研发计划公布,旷视科技开启“五年行动”

    第一批国家重点研发计划公布,旷视科技开启“五年行动”

网友点评网友点评
阅读推荐阅读推荐

据外媒报道,STEER打造了首款完全自动驾驶停车技术,旨在使常规车辆转变为无人驾驶车辆。STEER的首款技术应用是4级自动驾驶及网络安全停车...

近日,美国软性机器抓手制造商 Soft Robotics 宣布,获得 2000 万美元的融资,本轮投资者包括 Scale Venture Partners,Calibrate Ventures...

据外媒报道,加州车管局发布了《2017自动驾驶脱离报告(California Autonomous Vehicle Disengagement Reports)》,其中谈及了脱离的具体...

用人机语音交互,来解决智能家居适老的问题;通过家庭门禁与安防套件、空气净化套件、可燃气体与有害气体监控套件等相互联动,在不同生活情...