这篇文章主要介绍了关于thinkphp的c方法的使用,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

用过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 ;

}

}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的c方法,thinkphp的c方法的使用相关推荐

  1. think php a方法,ThinkPHP之A方法实例讲解_PHP

    ThinkPHP ThinkPHP的A方法用于在内部实例化控制器,其调用格式为: A('[项目://][分组/]模块','控制器层名称') 最简单的用法: $User = A('User'); 表示实 ...

  2. php tp框架调用方法,thinkPHP框架使用方法

    title: thinkPHP框架使用方法 date: 2018-01-05 20:30:44 tags: 1. thinkPHP思想 thinkPHP基于MVC思想,MVC是一种设计模式,他强制的使 ...

  3. php create()方法,ThinkPHP中create()方法自动验证实例

    ThinkPHP中create()方法自动验证实例2020-06-16 04:24:32 自动验证是ThinkPHP模型层提供的一种数据验证方法,可以在使用create创建数据对象的时候自动进行数据验 ...

  4. php l方法,ThinkPHP的L方法使用简介

    thinkPHP的L方法用于启用多语言的情况下,设置和获取当前的语言定义. 其调用格式为:L('语言变量'[,'语言值']) 1.设置语言变量 除了使用语言包定义语言变量之外,我们可以用L方法动态设置 ...

  5. PHP的create方法,Thinkphp中Create方法深入探究

    由于工作原因在thinkPHP的create()方法上遇到了问题,所以跟踪了create(),从而进一步探究了create()方法. 原来create()方法原来有两个参数,本文就此作简要说明,需要的 ...

  6. thinkphp中data方法

    data方法也是模型类的连贯操作方法之一,用于设置当前要操作的数据对象的值,可能大家不太习惯用这个方法,今天来讲解下如何用好data方法. 用法 写操作 通常情况下我们都是通过create方法或者赋值 ...

  7. ThinkPHP的field方法的用法总结

    ThinkPHP的连贯操作方法中field方法有很多的使用技巧,field方法主要目的是标识要返回或者操作的字段,下面详细道来.1.用于查询 在查询操作中field方法是使用最频繁的. $Model- ...

  8. 仿写thinkphp的I方法

    自己定义一个方法仿写thinkphp的I 方法 <?php function I($key="",$default='',$function="") {$ ...

  9. think php a方法,PHP_ThinkPHP之A方法实例讲解,ThinkPHP的A方法用于在内部实例 - phpStudy...

    ThinkPHP之A方法实例讲解 ThinkPHP的A方法用于在内部实例化控制器,其调用格式为: A('[项目://][分组/]模块','控制器层名称') 最简单的用法: $User = A('Use ...

最新文章

  1. 送书 | 你一定能看懂的算法基础书(代码示例基于Python)
  2. java的编译及运行
  3. 1.2.2 Logistic回归和梯度下降计算的数学流程
  4. JS 中迭代数组的三种方法
  5. 认识CUBA平台的CLI
  6. 一个线程加一运算,一个线程做减一运算,多个线程同时交替运行--synchronized...
  7. updatebyprimarykeyselective返回什么是成功_嫦娥五号发射升空成功!!!
  8. 不重复的两两比较(洛谷P5728题题解,Java语言描述)
  9. [UML]转:UML类图集中关系的总结
  10. Python中的self和init
  11. BZOJ5212[ZJOI2018]历史
  12. 为什么人人都应该学编程?
  13. c语言在线编译答案,(完整版)C语言试题
  14. Email,电子邮箱免费注册流程
  15. 电脑开热点手机连不上
  16. 【Faster R-CNN论文精度系列】原文精析
  17. 这个彩蛋表明,图灵测试评估的也许不是计算机,而是人类……
  18. 火影忍者中的天才七忍者
  19. TWS耳机OVP芯片,过压保护电路芯片
  20. QQ无法访问个人文件夹,修复失败问题

热门文章

  1. I/0口输入输出实验 流水灯程序 P0、P1、P2、P3口作为输出口,连接八只发光二极管,编写程序,使发光二极管从左至右循环点亮。
  2. Java Integer类详解
  3. java - 分解质因数
  4. java写一个类吧,能不能自己写个java自带的类
  5. 【youcans 的 OpenCV 例程 200 篇】104. 运动模糊退化模型
  6. 用一个参数化的模型来投影点
  7. 类似endnote_求推荐一款文献管理软件?
  8. 缺陷调研报告_质量零缺陷 | 打造极致产品的质量管理之道
  9. 详述白盒测试的逻辑覆盖法的条件判定覆盖及其优缺点
  10. 解题: SDOI 2011 染色