首先a、d、s、l、c、f、i 他們都在 /thinkphp/common/functions.php 這個檔案中
下面我分別說明一下他們的功能
a() 載入action類
d() 載入model類
s()全域性快取配置
l() 獲取語言定義
c() 獲取配置值
f()快速檔案資料讀取和儲存 針對簡單型別資料 字串、陣列
i() 快速建立乙個物件例項
1.a快速建立action物件
$action
= new
useraction();// 等同於以下寫法:
$action
= a(
"user"
);
而且,如果當前的useraction類還沒有引入的話,a方法會自動引入。並且具有單例模式的支援,不會重複建立相同的action物件。
a方法支援跨專案呼叫,例如:
$action
= a(
"user"
,'admin'
); //例項化admin專案的useraction類
再例如我們的程式有2個action分別是indexaction和testaction,在 indexaction中有個myhello方法能夠輸出hello world,如果我也想在testaction中也輸出同樣一段文字怎麼辦?最原始的方法首先我們匯入indexaction.class.php這個檔案,然後new indexaction,最後呼叫myhello方法才行。
**一般為:
php**
<?php
import("@.action.index"
);
//匯入本專案目錄下action目錄下的index.class.php檔案。
class
testaction
extends
action
} ?>
那麼,如果我們用a函式,怎麼寫呢?php**
<?php
class
testaction
extends
action
} ?>
呵呵,少寫很多**吧。當然,這還不是最偷懶的方法,請看下邊的r()函式,就知道什麼是偷懶的極致了。
2:b函式
3: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才行。
4:d快速建立模型資料物件
先定義好模型類,如usermodel,然後就可以用d()函式對資料進行操作了。例如:
先在"你的專案"\lib\model下建立乙個名為usermodel.class.php的php指令碼,內容如下:
class usermodel extends model{}
然後,無需增加任何屬性和方法,就可以進行如下操作:
$user = d("user"); //例項化user物件,user是你在資料庫建立的乙個名為"字首_user"的資料表
也可以用$user = new usermodel()代替,進行例項化物件的操作。
例項化之後,就可以對資料進行增刪查改等一系列操作了,如:
$user->find(1); //查詢主鍵為1的記錄
5.s快速操作快取方法
thinkphp把各種快取方式都抽象成統一的快取類來呼叫,而且thinkphp把所有的快取機制統一成乙個s方法來進行操作,所以在使用
不同的快取方式的時候並不需要關注具體的快取細節。如:
s('data',$data); //使用data標識快取$data資料
s('data',$data,3600); //快取$data資料3600秒
$data = s('data'); //獲取快取資料
s('name'
,null); // 刪除快取標識name
6.l快速操作語言變數
l方法提供了多語言的支援,可以快速設定和獲取語言定義。
l(『user_info』,』使用者資訊』); //設定名稱為user_info 的語言變數
l(『user_info』); // 獲取user_info的語言變數值
//批量賦值
$array
[『user_info』] = 『使用者資訊』;
$array
[『error_info』] = 『錯誤資訊』;
l($array
);7.c 快速操作配置變數
c(『user_auth_on』,true); //設定名稱為user_auth_on 的配置引數
c(『user_auth_on』); //獲取user_auth_on的變數值
同l一樣,c也支援批量賦值
注意:配置引數不區分大小寫
此外從1.5版本開始,c方法還支援二維陣列的操作
c(
'user.user_type'
,1);
c('user.user_auth_on'
);
8. f 檔案資料儲存方法
f方法主要用於專案的檔案資料的寫入、更改和刪除,其工作機理和s方法是類似的,區別在於用途不同,資料儲存的目錄也不同,而且不能指定快取方式,因為預設就是檔案形式儲存資料。
f方法使用了var_export方法,所以只能支援簡單資料型別,不支援物件的快取
9:r函式
還記得我們的a函式吧,如果僅僅想執行某個方法,其實用r函式更方便,剛才的可以替換成php**
<?php
class
testaction
extends
action
} ?>
ThinkPHP的單字母函式
c 引數名稱 注意 配置引數名稱中不能含有 和特殊字元,允許字母 數字和下劃線。讀取二級配置 c user config.user type 如果my config尚未設定的話,則返回default config字串 c my config null,default config c 引數名稱 新的...
ThinkPHP單字母函式整理
這是一篇tdweb的筆記,在徵得他的同意後,我放了上來。他最初是為lite版本寫的,但現在這些單字母函式在標準版裡也都同樣存在了。因此這些資料在兩個版本的thinkphp中都同樣適用。由於tdweb偷了點懶,部分 都是直接複製過來的,所以,我稍做了一下整理 主要是頁面樣式的稍做更新,同時對於部分語句...
ThinkPHP大寫單字母函式
thinkphp 單字母函式 a 內部例項化控制器 d 例項化自定義模型類 m 例項化乙個基礎模型類 r 呼叫某個控制器的操作方法 l 啟用多語言的情況下,設定和獲取當前的語言定義 n 計數器方法 g 包括標記位置和區間統計兩個功能 f 用於簡單資料快取,並且只能支援檔案形式 c 用於設定 獲取,以...