thinkPHP的單字母函式的意義

2022-08-29 08:00:14 字數 3526 閱讀 2555

首先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 用於設定 獲取,以...