ThinkPHP開發架構函數詳解:C方法_php技巧

來源:互聯網
上載者:User

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();  }}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.