溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ThinkPHP開發(fā)框架函數(shù)之C方法的示例分析

發(fā)布時間:2021-09-02 14:09:11 來源:億速云 閱讀:146 作者:小新 欄目:開發(fā)技術(shù)

小編給大家分享一下ThinkPHP開發(fā)框架函數(shù)之C方法的示例分析,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

C方法是ThinkPHP用于設置、獲取,以及保存配置參數(shù)的方法,使用頻率較高。

了解C方法需要首先了解下ThinkPHP的配置,因為C方法的所有操作都是圍繞配置相關的。ThinkPHP的配置文件采用PHP數(shù)組格式定義。

由于采用了函數(shù)重載設計,所以用法較多,我們來一一說明下。

設置參數(shù)

C('DB_NAME','thinkphp');

表示設置DB_NAME配置參數(shù)的值為thinkphp,由于配置參數(shù)不區(qū)分大小寫,所以下面的寫法也是一樣:

C('db_name','thinkphp');

但是建議保持統(tǒng)一大寫的配置定義規(guī)范。

項目的所有參數(shù)在未生效之前都可以通過該方法動態(tài)改變配置,最后設置的值會覆蓋前面設置或者慣例配置里面的定義,也可以使用參數(shù)配置方法添加新的配置。

支持二級配置參數(shù)的設置,例如:

C('USER.USER_ID',8);

配置參數(shù)不建議超過二級。

如果要設置多個參數(shù),可以使用批量設置,例如:

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

如果C方法的第一個參數(shù)傳入數(shù)組,就表示批量賦值,上面的賦值相當于:

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

獲取參數(shù)

要獲取設置的參數(shù),可以用:

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

如果USER_ID參數(shù)尚未定義過,則返回NULL。

也可以支持獲取二級配置參數(shù),例如:

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

如果傳入的配置參數(shù)為空,表示獲取全部的參數(shù):

$config = C();

保存設置

3.1版本增加了一個永久保存設置參數(shù)的功能,僅針對批量賦值的情況,例如:

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

在批量設置了config參數(shù)后,會連同當前所有的配置參數(shù)保存到緩存文件(或者其他配置的緩存方式)。

保存之后,如果要取回保存的參數(shù),可以用

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

其中name就是前面保存參數(shù)時用的緩存的標識,必須一致才能正確取回保存的參數(shù)。取回的參數(shù)會和當前的配置參數(shù)合并,無需手動合并。

代碼如下:

class TestAction extends Action{
  /**
   * $config['user_id'] = 1;
    $config['user_type'] = 1;
    C($config);
      如果C方法的第一個參數(shù)傳入數(shù)組,就表示批量賦值,上面的賦值相當于:
    C('USER_ID',1);
    C('USER_TYPE',1);
      獲取參數(shù)
      要獲取設置的參數(shù),可以用:
    $userId = C('USER_ID');
    $userType = C('USER_TYPE');
   */
  public function index(){
    C('USER_ID',102);  //給參數(shù)賦值
    C('USER_TYPE',107); //給參數(shù)賦值
    dump(C('USER_ID')).'<br/>';//102=>獲取設置的參數(shù)
    dump(C('USER_TYPE')).'<br/>';//107=>獲取設置的參數(shù)
    $this->display();
  }
}

看完了這篇文章,相信你對“ThinkPHP開發(fā)框架函數(shù)之C方法的示例分析”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI