ThinkPHP開發(fā)框架函數(shù)詳解:C方法
C方法是ThinkPHP用于設(shè)置、獲取,以及保存配置參數(shù)的方法,使用頻率較高。
了解C方法需要首先了解下ThinkPHP的配置,因?yàn)镃方法的所有操作都是圍繞配置相關(guān)的。ThinkPHP的配置文件采用PHP數(shù)組格式定義。
由于采用了函數(shù)重載設(shè)計(jì),所以用法較多,我們來一一說明下。
設(shè)置參數(shù)
C('DB_NAME','thinkphp');
表示設(shè)置DB_NAME配置參數(shù)的值為thinkphp,由于配置參數(shù)不區(qū)分大小寫,所以下面的寫法也是一樣:
C('db_name','thinkphp');
但是建議保持統(tǒng)一大寫的配置定義規(guī)范。
項(xiàng)目的所有參數(shù)在未生效之前都可以通過該方法動(dòng)態(tài)改變配置,最后設(shè)置的值會(huì)覆蓋前面設(shè)置或者慣例配置里面的定義,也可以使用參數(shù)配置方法添加新的配置。
支持二級(jí)配置參數(shù)的設(shè)置,例如:
C('USER.USER_ID',8);
配置參數(shù)不建議超過二級(jí)。
如果要設(shè)置多個(gè)參數(shù),可以使用批量設(shè)置,例如:
$config['user_id'] = 1; $config['user_type'] = 1; C($config);
如果C方法的第一個(gè)參數(shù)傳入數(shù)組,就表示批量賦值,上面的賦值相當(dāng)于:
C('USER_ID',1); C('USER_TYPE',1);
獲取參數(shù)
要獲取設(shè)置的參數(shù),可以用:
$userId = C('USER_ID'); $userType = C('USER_TYPE');
如果USER_ID參數(shù)尚未定義過,則返回NULL。
也可以支持獲取二級(jí)配置參數(shù),例如:
$userId = C('USER.USER_ID');
如果傳入的配置參數(shù)為空,表示獲取全部的參數(shù):
$config = C();
保存設(shè)置
3.1版本增加了一個(gè)永久保存設(shè)置參數(shù)的功能,僅針對(duì)批量賦值的情況,例如:
$config['user_id'] = 1; $config['user_type'] = 1; C($config,'name');
在批量設(shè)置了config參數(shù)后,會(huì)連同當(dāng)前所有的配置參數(shù)保存到緩存文件(或者其他配置的緩存方式)。
保存之后,如果要取回保存的參數(shù),可以用
$config = C('','name');
其中name就是前面保存參數(shù)時(shí)用的緩存的標(biāo)識(shí),必須一致才能正確取回保存的參數(shù)。取回的參數(shù)會(huì)和當(dāng)前的配置參數(shù)合并,無需手動(dòng)合并。
代碼如下:
class TestAction extends Action{ /** * $config['user_id'] = 1; $config['user_type'] = 1; C($config); 如果C方法的第一個(gè)參數(shù)傳入數(shù)組,就表示批量賦值,上面的賦值相當(dāng)于: C('USER_ID',1); C('USER_TYPE',1); 獲取參數(shù) 要獲取設(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è)置的參數(shù) dump(C('USER_TYPE')).'<br/>';//107=>獲取設(shè)置的參數(shù) $this->display(); } }
相關(guān)文章
PHP imagecreatefrombmp 從BMP文件或URL新建一圖像
大家都知道php GD庫可方便的從URL新建一圖像, GD中有imagecreatefromjpeg(),imagecreatefromPNG()....等2012-07-07fsockopen pfsockopen函數(shù)被禁用,SMTP發(fā)送郵件不正常的解決方法
近期黑客利用程序漏洞注入后使用 fsockopen 進(jìn)行PHPDDOS 攻擊,導(dǎo)致部分服務(wù)器不穩(wěn)定,現(xiàn)在將危險(xiǎn)函數(shù) fsockopen 暫時(shí)禁用,部分程序功能可能有問題,以下列出已知問題及通用解決方法2015-09-09PHP中使用Imagick實(shí)現(xiàn)各種圖片效果實(shí)例
這篇文章主要介紹了PHP中使用Imagick實(shí)現(xiàn)各種圖片效果實(shí)例,本文講解了偏置圖像、改變圖片大小、創(chuàng)建文本圖像、圖像模糊度處理等內(nèi)容,需要的朋友可以參考下2015-01-01PHP使用mysqldump命令導(dǎo)出數(shù)據(jù)庫
最近用php寫一個(gè)數(shù)據(jù)備份的功能。做法是使用php的system函數(shù)執(zhí)行mysqldump命令,進(jìn)行備份,這里分享給大家,有需要的小伙伴可以參考下。2015-04-04centos7環(huán)境下swoole1.9的安裝與HttpServer的使用方法分析
這篇文章主要介紹了centos7環(huán)境下swoole1.9的安裝與HttpServer的使用方法,結(jié)合實(shí)例形式分析了centos7環(huán)境下swoole1.9的安裝、配置方法以及HttpServer的相關(guān)使用技巧,需要的朋友可以參考下2020-03-03php模擬asp中的XmlHttpRequest實(shí)現(xiàn)http請(qǐng)求的代碼
為了自己方便模擬asp里面的xmlhttp組件寫的phphttp請(qǐng)求類,基本的功能都實(shí)現(xiàn)了,支持gzip壓縮2011-03-03