中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ThinkPHP字母函數實例分析

發布時間:2022-03-10 09:00:20 來源:億速云 閱讀:131 作者:iii 欄目:編程語言

這篇文章主要介紹“ThinkPHP字母函數實例分析”,在日常操作中,相信很多人在ThinkPHP字母函數實例分析問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”ThinkPHP字母函數實例分析”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

A 方法

用于在內部實例化控制器,調用格式:

// A('[項目://][分組/]模塊','控制器層名稱')$User = A('User');$User = A('Admin://User');

實例化控制器后,就可以調用該控制器中的方法,不過需要注意的情況是,在跨項目調用的情況下,如果你的操作方法 有針對當前控制器的特殊變量操作,會有一些未知的問題,所以,一般來說,官方建議需要公共調用的控制器層單獨開發,不要有太多的依賴關系。

B 方法

這是隨著行為應運而生的新生函數,可以執行某個行為,例如

B('app_begin');

就是在項目開始之前,執行這個行為定義的所有函數。支持 2 個參數,第二個參數支持需要接受一個數組,例如

B('app_begin', ["name" => "tdweb","time"=>time()]);

C 方法

C 方法是 Think 用于設置、獲取,以及保存配置參數的方法,使用頻率較高。

動態設置配置參數,配置參數不區分大小寫,但是建議保持統一大寫的配置定義規范。

C('DB_NAME','think');

支持二級配置參數的設置,配置參數不建議超過二級。例如:

C('USER.USER_ID',8);

如果要設置多個參數,可以使用批量設置,例如:

$config['user_id'] = 1;$config['user_type'] = 1;C($config);

如果傳入的配置參數為空,表示獲取全部的參數:

$config = C();

D 方法

D 方法應該是用的比較多的方法了,用于實例化自定義模型類,是 Think 框架對 Model 類實例化的一種封裝,并實現了單例模式,支持跨項目和分組調用,調用格式如下:

D('[項目://][分組/]模型','模型層名稱')

方法的返回值是實例化的模型對象。

D 方法可以自動檢測模型類,如果存在自定義的模型類,則實例化自定義模型類,如果不存在,則會實例化 Model 基類,同時對于已實例化過的模型,不會重復去實例化。

D 方法最常用的用法就是實例化當前項目的某個自定義模型,例如:

// 實例化 User 模型$User = D('User');

F 方法

F 方法其實是 S 方法的一個子集功能,僅用于簡單數據緩存,并且只能支持文件形式,不支持緩存有效期,因為采用的是返回方式,所以其效率較 S 方法較高,因此我們也稱之為快速緩存方法。

F 方法的特點是:

  • 簡單數據緩存;

  • 文件形式保存;

  • 采用返回數據方式加載緩存;

  • 支持子目錄緩存以及自動創建;

  • 支持刪除緩存和批量刪除;

寫入和讀取緩存

F('data','test data');

默認的保存起始路徑是 DATA_PATH(該常量在默認配置位于 RUNTIME_PATH.‘Data/’ 下面),也就是說會生成文件名為 DATA_PATH.‘data.’ 的緩存文件。

注意:確保你的緩存標識的唯一,避免數據覆蓋和沖突。

下次讀取緩存數據的時候,使用:

$Data = F('data');

我們可以采用子目錄方式保存,例如:

F('user/data',$data); 
// 緩存寫入F('user/data'); 
// 讀取緩存

就會生成 DATA_PATH.‘user/data.’ 緩存文件,如果 user 子目錄不存在的話,則會自動創建,也可以支持多級子目錄,例如:

F('level1/level2/data',$data);

如果需要指定緩存的起始目錄,可以用下面的方式:

F('data',$data,TEMP_PATH);

刪除緩存

F('data',NULL);

G 方法

G 方法的作用包括標記位置和區間統計兩個功能,下面來看下具體用法:

標記位置

G 方法的第一個用法就是標記位置,例如:

G('begin');

表示把當前位置標記為 begin 標簽,并且記錄當前位置的執行時間,如果環境支持的話,還能記錄內存占用情況。可以在任何位置調用 G 方法標記。

運行時間統計

標記位置后,我們就可以再次調用 G 方法進行區間統計了,例如:

G('begin');
// ...其他代碼段G('end');
// ...也許這里還有其他代碼
// 進行統計區間echo G('begin','end').'s';

G(‘begin’,‘end’) 表示統計 begin 位置到 end 位置的執行時間(單位是秒),begin 必須是一個已經標記過的位置,如果這個時候 end 位置還沒被標記過,則會自動把當前位置標記為 end 標簽,輸出的結果類似于:

0.0056s

默認的統計精度是小數點后 4 位,如果覺得這個統計精度不夠,還可以設置例如:

G('begin','end',6).'s';

內存開銷統計

如果你的環境支持內存占用統計的話,還可以使用 G 方法進行區間內存開銷統計(單位為 kb),例如:

echo G('begin','end','m').'kb';

第三個參數使用 m 表示進行內存開銷統計,輸出的結果可能是:

625kb

I 方法

正如你所見到的一樣,I 方法是 Thinkphp 眾多單字母函數中的新成員,其命名來自于英文 Input(輸入),主要用于更加方便和安全的獲取系統輸入變量,可以用于任何地方,用法格式如下:

I('變量類型.變量名',['默認值'],['過濾方法'])

變量類型是指請求方式或者輸入類型,包括:

方式說明
get獲取 GET 參數
post獲取 POST 參數
param自動判斷請求類型獲取 GET、POST 或者 PUT 參數
request獲取 REQUEST 參數
put獲取 PUT 參數
session獲取 $_SESSION 參數
cookie獲取 $_COOKIE 參數
server獲取 $_SERVER 參數
globals獲取 $GLOBALS 參數

注意:變量類型不區分大小寫。變量名則嚴格區分大小寫。

默認值和過濾方法均屬于可選參數。

L 方法

L 方法用于啟用多語言的情況下,設置和獲取當前的語言定義。

調用格式:

L('語言變量',['語言值'])

M 方法

M 方法用于實例化一個基礎模型類,和 D 方法的區別在于:

  • 不需要自定義模型類,減少 IO 加載,性能較好;

  • 實例化后只能調用基礎模型類(默認是 Model 類)中的方法;

  • 可以在實例化的時候指定表前綴、數據庫和數據庫的連接信息;

D 方法的強大則體現在你封裝的自定義模型類有多強,不過隨著新版 Think 框架的基礎模型類的功能越來越強大,M 方法也比 D 方法越來越實用了。

M 方法的調用格式:

M('[基礎模型名:]模型名','數據表前綴','數據庫連接信息')

R 方法

R 方法用于調用某個控制器的操作方法,是 A 方法的進一步增強和補充。

R 方法的調用格式:

R('[項目://][分組/]模塊/操作','參數','控制器層名稱')

可以通過 R 方法在其他控制器里面調用這個操作方法(一般 R 方法用于跨模塊調用)

$data = R('User/detail',array('5'));

官方的建議是不要在同一層多太多調用,會引起邏輯的混亂,被公共調用的部分應該封裝成單獨的接口,可以借助3.1的新特性多層控制器,單獨添加一個控制器層用于接口調用

S 方法

S 方法還支持對當前的緩存方式傳入緩存參數,例如:

S('data',$Data,3600,'File',array('length'=>10,'temp'=>RUNTIME_PATH.'temp/'));

T 方法

為了更方便的輸出模板文件,新版封裝了一個 T 函數用于生成模板文件名。

T([資源://][模塊@][主題/][控制器/]操作,[視圖分層])

T 函數的返回值是一個完整的模板文件名,可以直接用于 display 和 fetch 方法進行渲染輸出。

U 方法

U 方法用于完成對 URL 地址的組裝,特點在于可以自動根據當前的 URL 模式和設置生成對應的 URL 地址,格式為:

U('地址','參數','偽靜態','是否跳轉','顯示域名');

在模板中使用 U 方法而不是固定寫死 URL 地址的好處在于,一旦你的環境變化或者參數設置改變,你不需要更改模板中的任何代碼。

到此,關于“ThinkPHP字母函數實例分析”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

安平县| 从化市| 湘西| 海林市| 大荔县| 阿拉尔市| 桓仁| 华蓥市| 醴陵市| 太和县| 青铜峡市| 罗甸县| 瓦房店市| 蒲城县| 九江县| 军事| 余江县| 秦安县| 高要市| 鄱阳县| 青海省| 舒兰市| 峡江县| 红河县| 买车| 稷山县| 苏州市| 桦川县| 开化县| 新干县| 和龙市| 彭山县| 漯河市| 霞浦县| 余姚市| 乌拉特后旗| 镇远县| 吉安市| 大埔区| 靖安县| 昌都县|