ThinkPHP开发框架函数详解:C方法

yipeiwu_com6年前PHP代码库

C方法是ThinkPHP用于设置、获取,以及保存配置参数的方法,使用频率较高。

了解C方法需要首先了解下ThinkPHP的配置,因为C方法的所有操作都是围绕配置相关的。ThinkPHP的配置文件采用PHP数组格式定义。

由于采用了函数重载设计,所以用法较多,我们来一一说明下。

设置参数

C('DB_NAME','thinkphp');

表示设置DB_NAME配置参数的值为thinkphp,由于配置参数不区分大小写,所以下面的写法也是一样:

C('db_name','thinkphp');

但是建议保持统一大写的配置定义规范。

项目的所有参数在未生效之前都可以通过该方法动态改变配置,最后设置的值会覆盖前面设置或者惯例配置里面的定义,也可以使用参数配置方法添加新的配置。

支持二级配置参数的设置,例如:

C('USER.USER_ID',8);

配置参数不建议超过二级。

如果要设置多个参数,可以使用批量设置,例如:

$config['user_id'] = 1;
$config['user_type'] = 1;
C($config);

如果C方法的第一个参数传入数组,就表示批量赋值,上面的赋值相当于:

C('USER_ID',1);
C('USER_TYPE',1);

获取参数

要获取设置的参数,可以用:

$userId = C('USER_ID');
$userType = C('USER_TYPE');

如果USER_ID参数尚未定义过,则返回NULL。

也可以支持获取二级配置参数,例如:

$userId = C('USER.USER_ID');

如果传入的配置参数为空,表示获取全部的参数:

$config = C();

保存设置

3.1版本增加了一个永久保存设置参数的功能,仅针对批量赋值的情况,例如:

$config['user_id'] = 1;
$config['user_type'] = 1;
C($config,'name');

在批量设置了config参数后,会连同当前所有的配置参数保存到缓存文件(或者其他配置的缓存方式)。

保存之后,如果要取回保存的参数,可以用

$config = C('','name');

其中name就是前面保存参数时用的缓存的标识,必须一致才能正确取回保存的参数。取回的参数会和当前的配置参数合并,无需手动合并。

代码如下:

class TestAction extends Action{
  /**
   * $config['user_id'] = 1;
    $config['user_type'] = 1;
    C($config);
      如果C方法的第一个参数传入数组,就表示批量赋值,上面的赋值相当于:
    C('USER_ID',1);
    C('USER_TYPE',1);
      获取参数
      要获取设置的参数,可以用:
    $userId = C('USER_ID');
    $userType = C('USER_TYPE');
   */
  public function index(){
    C('USER_ID',102);  //给参数赋值
    C('USER_TYPE',107); //给参数赋值
    dump(C('USER_ID')).'<br/>';//102=>获取设置的参数
    dump(C('USER_TYPE')).'<br/>';//107=>获取设置的参数
    $this->display();
  }
}

相关文章

浅析php中常量,变量的作用域和生存周期

在PHP脚本中变量主要有:内置超级全局变量,一般的变量,常量,全局变量,静态变量等等,我们在使用它们的时候除了要正确地知道它们的语法以外,更重要的是,我们要知道它们在本质上的区别与联系—...

PHP截取IE浏览器并缩小原图的方法

本文实例讲述了PHP截取IE浏览器并缩小原图的方法。分享给大家供大家参考,具体如下: // 截取一个窗口 Capture a window (IE for example) $ie...

php实现通用的信用卡验证类

本文实例讲述了php实现通用的信用卡验证类。分享给大家供大家参考。 原文说明如下: Credit Card Validation Solution (PHP Edition) Vers...

PHP面向对象程序设计之类常量用法实例

类常量是PHP面向对象程序设计中非常重要的一个概念,牢固掌握类常量有助于进一步提高PHP面向对象程序设计的水平。本文即以实例形式描述了PHP程序设计中类常量的用法。具体如下: 类常量:类...

PHP策略模式定义与用法示例

PHP策略模式定义与用法示例

本文实例讲述了PHP策略模式定义与用法。分享给大家供大家参考,具体如下: 概述 策略模式属于对象的行为模式。其用意是针对一组算法,将每个算法封装到具有共同接口的独立的类中,从而使得它们可...