ThinkPHP單字母函式整理

2021-08-25 18:19:54 字數 2915 閱讀 5169

這是一篇tdweb的筆記,在徵得他的同意後,我放了上來。他最初是為lite版本寫的,但現在這些單字母函式在標準版裡也都同樣存在了。因此這些資料在兩個版本的thinkphp中都同樣適用。由於tdweb偷了點懶,部分**都是直接複製過來的,所以,我稍做了一下整理(主要是頁面樣式的稍做更新,同時對於部分語句進行了一些更新,tdweb莫生氣)

原文**:

原文如下:(我僅針對單字母函式作介紹)

有人不太喜歡tp這種單字母函式,其實這也是tp的乙個特色,如果理解了這些函式的作用,不管是背,還是寫,都是非常方便的,接下來我們以字母順序開始。

a函式(基本是action的簡寫)

a函式是用來例項化我們的action類的,例如我們的程式有2個action分別是indexaction和testaction,在 indexaction中有個myhello方法能夠輸出hello world,如果我也想在testaction中也輸出同樣一段文字怎麼辦?最原始的方法首先我們匯入indexaction.class.php這個檔案,然後new indexaction,最後呼叫myhello方法才行。

**一般為 :

php**

<?php  

?("@.action.index"

);  

//匯入本專案目錄下action目錄下的index.class.php檔案。

class

testaction 

extends

action  

}  ?>  

那麼,如果我們用a函式,怎麼寫呢?

php**

<?php  

class

testaction 

extends

action  

}  ?>  

呵呵,少寫很多**吧。當然,這還不是最偷懶的方法,請看下邊的r()函式,就知道什麼是偷懶的極致了。

b函式

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"),這樣就讀取這個快取了

l函式

語言定義函式,l("intro")獲取定義成intro的語言,l("intro","介紹")為intro賦值,關於這個賦值的長久性,道理同c函式一樣。

r函式

還記得我們的a函式吧,如果僅僅想執行某個方法,其實用r函式更方便,剛才的可以替換成

php**

<?php  

class

testaction 

extends

action  

}  ?>  

呵呵,是不是更簡單?

s函式

全域性快取讀寫函式,和c類似,不過是直接寫成檔案的哦,寫在temp目錄下,不過在快取有一點需要注意,如果快取名稱是aaa,那麼快取生成的檔名稱就是md5("aaa")的值,值得注意。

u函式

u函式是很強大的乙個函式,它主要是進行url組裝,同時支援不同模式和路由

例如:取得當前模組的action位址 :u("/nowmethod");

取得當前模組的action位址,並傳遞引數:u("/nowmethod?params=test");

(如果不習慣上邊那種方式,可以使用u("/nowmethod",array("params"=>"test");這樣的陣列方式傳遞引數,效果是一樣的)

另外,如果想直接跳轉,那麼就在第二個引數寫1,例如u("/nowmethod",1);這樣就直接調轉到指定url了

ThinkPHP的單字母函式

c 引數名稱 注意 配置引數名稱中不能含有 和特殊字元,允許字母 數字和下劃線。讀取二級配置 c user config.user type 如果my config尚未設定的話,則返回default config字串 c my config null,default config c 引數名稱 新的...

ThinkPHP大寫單字母函式

thinkphp 單字母函式 a 內部例項化控制器 d 例項化自定義模型類 m 例項化乙個基礎模型類 r 呼叫某個控制器的操作方法 l 啟用多語言的情況下,設定和獲取當前的語言定義 n 計數器方法 g 包括標記位置和區間統計兩個功能 f 用於簡單資料快取,並且只能支援檔案形式 c 用於設定 獲取,以...

thinkPHP的單字母函式的意義

首先a d s l c f i 他們都在 thinkphp common functions.php 這個檔案中 下面我分別說明一下他們的功能 a 載入action類 d 載入model類 s 全域性快取配置 l 獲取語言定義 c 獲取配置值 f 快速檔案資料讀取和儲存 針對簡單型別資料 字串 陣列...