C 方法是 ThinkPHP 內置的特殊方法,用於在操作和模板裏讀取配置文件裏的配置信息或者動態配置參數。語法如下:
- C( para_name, value )
參數說明
如果只有 para_name 參數時,表示讀取 para_name 配置參數的值;para_name 與 value 都存在時,表示設置 para_name 參數的值爲 value。
C 方法讀取配置參數值
假設項目配置裏有如下配置信息:
- /* Cookie設置 */
- 'COOKIE_EXPIRE' => 3600, // Coodie有效期
- 'COOKIE_DOMAIN' => '.5idev.com', // Cookie有效域名
- 'COOKIE_PATH' => '/', // Cookie路徑
- 'COOKIE_PREFIX' => '', // Cookie前綴
- /* 網站設置 */
- 'SITE_NAME' => '我愛開發網', // 站點名字
- 'DOMAIN_NAME' => '5idev.com', // 域名
- 'NO_ARTICLE_VIEW' => '抱歉:您請求的文章不存在,系統已記錄該錯誤。請繼續訪問本站其他內容。',
例子 1
下面是在操作裏面讀取配置參數的例子:
- setcookie( 'user_name',$user_name,C('COOKIE_EXPIRE'),C('COOKIE_PATH'),C('COOKIE_DOMAIN') );
上面是一個設置 cookie 的例子,例子裏利用 C 方法讀取了配置文件裏 Cookie 設置的配置參數。
例子 2
下面是在模板裏面讀取配置參數的例子:
- <title>{:C('SITE_NAME')}</title>
在模板裏讀取並輸出配置信息,還可以使用下面的方法:
- <title>{$Think.config.SITE_NAME}</title>
實際輸出的 HTML 代碼爲:
- <title>開源部落站長網</title>
讀取二維配置
配置文件中支持二維數組的配置,那麼要讀取二維配置,可以使用 . 符號來表示層級:
- C('SITE_CONFIG.DOMAIN_NAME')
提示:當讀取的參數沒有在配置文件裏定義時,C 方法返回 NULL。
ThinkPHP 動態配置
ThinkPHP 慣例配置與項目配置都是通過預先定義配置文件的方式來配置需要的參數,而在具體的操作方法裏面,還可以通過 C 方法來動態改變或新增配置參數。
下面的例子將 Coodie 有效期變更爲 7200 秒:、
- C('COOKIE_EXPIRE',7200);
同樣動態配置二維數組參數,通過 . 符號來區分層級關係:
- C('SITE_CONFIG.DOMAIN_NAME','example.com')
提示:動態配置優於項目配置和慣例配置,因此如果動態配置的參數已經在配置文件裏定義過,將覆蓋已經配置的配置選項。