ThinkPHP單字母函數整理
參考來源:http://m-oyzm.iteye.com/blog/965299
A函數(基本是Action的簡寫)
A函數是
用來執行個體化我們的Action類的,例如我們的程式有2個Action分別是IndexAction和TestAction,在 IndexAction中有個myHello方法能夠輸出hello world,如果我也想在TestAction中也輸出同樣一段文字怎麼辦?最原始的方法首先我們匯入IndexAction.class.php這個檔案,然後new IndexAction,最後調用myHello方法才行。
代碼一般為 :
myHello();//調用myHello()方法 } } ?>
那麼,如果我們用A函數,怎麼寫呢?
myHello(); } } ?>
B函數
這是隨著行為應運而生的新生函數,可以執行某個行為,例如B('app_begin');就是在項目開始之前,執行這個行為定義的所有函數,支援2個參數,第二個參數支援需要接受一個數組,例如B('app_begin',array("name"=& gt;"tdweb","time"=>time()));這樣。
C函數
擷取配置值,這個大家用的應該不少。雖然使用方便,但是C函數無疑是一個非常強大的函數。
擷取值:
擷取所有設定:C(); 不傳遞任何參數,返回一個包含所有設定的數組。
擷取指定配置:C('URL_MODEL') 這樣就能得到URL_MODEL的配置資訊
擷取指定二維數組配置:C("array.name"),這樣就返回數組array下的key為name所對應的值
設定值:
為二維數組賦值C("array.name","value"),原理同上(擷取array.name的值),後邊的value是值。
批量賦值:
$test=array("URL_MODEL"=>1,"THIN_MODEL"=>true");
C($test);
這樣直接將數組裡的值賦值了
判斷是否賦值:
C("?URL_MODEL")這樣前邊加個"?",如果已經賦值,則返回true
需要說明的是,這裡雖然更改了配置的值,但是僅僅是這個頁面做了更改,到下個頁面就不起作用了,如果想改就永久更改,那麼需要配合F函數,將設定檔寫入config.php才行。
D函數
DAO函數應該是我們寫程式用的最多的函數了。和A函數類似,如果不使用D函數,就需要匯入Model,然後new Model,剩下都是一樣的。
但是D函數有2個有點,一是如果之前執行個體化過這個Model,那麼就不再執行個體化了,剩資源;二是方便調試,如果不存在 這個Model,會拋出TP異常,非常人性化。
如果訪問本項目的Model直接D("Model名稱");就可以了,如果打算跨項目訪問,就使用 D("Model名稱","項目名稱");其他的就沒什麼說的了。
F函數
快速讀取和儲存檔案資料
快速儲存資料:F("mydata","這裡是要儲存的資料"),這樣就在項目Data目錄下儲存了一個名叫mydata.php的檔案,裡邊的內容是該函數的第二個參數。
指定儲存時間 :F("mydata","這裡是要儲存的資料","60"),這樣,如果下次再訪問,間隔大於60秒則刪除次快取檔案。
指定儲存目錄:F("mydata","這裡是要儲存的資料","60",DATA_PATH) ,這樣就指定儲存在data目錄下
立即刪除緩衝:F("mydata",null),第二個參數傳遞一個null值,這樣就刪除了mydate這個緩衝
讀取快取資料:F("mydata"),這樣就讀取這個緩衝了
L函數
語言定義函數,L("intro")擷取定義成intro的語言,l("intro","介紹")為intro賦值,關於這個賦值的長久性,道理同C函數一樣。
R函數
還記得我們的A函數吧,如果僅僅想執行某個方法,其實用R函數更方便,剛才的可以替換成
S函數
全域緩衝讀寫函數,和C類似,不過是直接寫成檔案的哦,寫在Temp目錄下,不過在緩衝有一點需要注意,如果緩衝名稱是aaa,那麼緩衝產生的檔案名稱就是md5("aaa")的值,值得注意。
U函數
U函數是很強大的一個函數,它主要是進行URL組裝,同時支援不同模式和路由
例如:
取得當前模組的Action地址 :U("/nowMethod");
取得當前模組的Action地址,並傳遞參數:U("/nowMethod?params=test");
(如果不習慣上邊那種方式,可以使用U("/nowMethod",array("params"=>"test");這樣的數組方式傳遞參數,效果是一樣的)
訪問其他模組的方法:U("Other/otherMethod"),這樣就是訪問Other模組下的otherMethod方法
跨項目訪問:U("appname://Other/otherMethod");
使用路由訪問:U("appName:[email protected]/actionName?params");