首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

ThinkPHP 單字母函數速查手冊:U/D/M/I/B/C/E/G/L/T/N/A/R/W/S/F 完整解析

     編輯:PHP 相關知識

ThinkPHP 核心單字母函數全景指南

ThinkPHP 框架提供了一組極具特色的單字母快捷函數,極大提升了開發效率。但因字母含義抽象,初學者難以記憶。本文將 16 個核心函數按功能分類,附帶簽名、參數說明與典型用例,供開發者隨時查閱。

一、 URL 與路由組裝

1. U() —— URL 組裝神器

U($url='', $vars='', $suffix=true, $domain=false)
  • $url:支持 模塊/控制器/操作#錨點@域名?參數 完整表達式
  • $vars:陣列或字符串形式傳參
  • $suffix:偽靜態後綴,默認讀配置
  • $domain:是否輸出完整域名

示例:U('User/profile', ['id'=>123]) → /index.php/User/profile/id/123.html

二、 模型實例化三劍客

2. D() —— 實例化業務模型

D($name='', $layer='')
  • 自動查找 Application/模塊/Model/名稱Model.class.php
  • 支持跨模塊調用:D('Admin/User')
  • 返回模型對象,含業務邏輯方法

3. M() —— 輕量級無模型文件操作

M($name='', $tablePrefix='', $connection='')
  • 無需定義 Model 類,直接操作表
  • 支持指定基礎模型:M('MongoModel:User')
  • 適合簡單 CRUD、臨時表操作

12. A() —— 實例化控制器

A($name='', $layer='', $level='')
  • 用於控制器間調用,返回 Controller 實例
  • 支持層級參數控制多級控制器

13. R() —— 遠程調用控制器操作

R($url, $vars=[], $layer='')
  • 直接執行指定控制器/操作並返回結果
  • 適用於 Widget、API 內部復用

三、 數據輸入與安全

4. I() —— 統一輸入獲取與過濾

I($name, $default='', $filter=null)

常用模式:

I('id', 0);                    // 自動識別 GET/POST
I('post.name', '', 'htmlspecialchars'); // 獲取 $_POST['name'] 並過濾
I('get.');                     // 獲取整個 $_GET 陣列
  • 支持 get.、post.、put.、session.、cookie.、server. 等前綴
  • 內建 htmlspecialchars、strip_tags 等過濾器

四、 配置與異常處理

6. C() —— 配置讀寫

C($name=null, $value=null, $default=null)
  • 單參數讀取:C('DB_HOST')
  • 陣列批量設置:C(['DB_HOST'=>'127.0.0.1'])
  • 三參數帶默認值:C('KEY', null, 'default')

7. E() —— 拋出異常

E($msg, $code=0)

統一拋出 Think\Exception,配合框架異常處理機制。

五、 性能調試與統計

8. G() —— 微秒級計時與內存統計

G($start, $end='', $dec=4)
G('begin');           // 記錄起點
// ... 業務代碼
G('end');             // 記錄終點
echo G('begin','end',6);   // 耗時秒,6 位小數
echo G('begin','end','m'); // 內存增量(需 MEMORY_LIMIT_ON=true)

11. N() —— 執行次數統計

N($key, $step=0, $save=false)
N('db', 1);   // 記錄一次 DB 操作
N('read', 1); // 記錄一次讀取
echo N('db'); // 輸出本請求 DB 總次數

六、 國際化與視圖

9. L() —— 語言包讀寫

L($name=null, $value=null)
  • 不區分大小寫
  • 支持陣列批量定義

10. T() —— 模板文件定位

T($template='', $layer='')
  • 格式:資源://模塊@主題/控制器/操作
  • 返回編譯後模板文件路徑

七、 行為與擴展

5. B() —— 執行行為

B($name, $tag='', &$params=null)
  • 觸發框架行為擴展點
  • 無行為類時需傳 $tag

14. W() —— 渲染 Widget

W($name, $data=[])
  • 直接輸出 Widget 內容,適用於頁面片段復用

八、 快取與文件存儲

15. S() —— 緩存管理

S($name, $value='', $options=null)
  • 支持文件、Memcache、Redis 等多驅動
  • $options 可傳過期時間、驅動參數

16. F() —— 快速文件數據讀寫

F($name, $value='', $path=DATA_PATH)
  • 針對簡單類型(字符串、陣列)高效序列化存儲
  • 默認存放於 Data/ 目錄

九、 速記卡片(打印收藏)

函數核心用途典型場景
UURL 組裝模板生成鏈接、重定向
D/M模型實例化業務邏輯/輕量 CRUD
I輸入獲取控制器接收參數
C配置讀寫動態修改設置
G性能統計接口耗時、內存分析
S/F緩存/文件數據暫存、靜態化
A/R/W控制器/Widget跨模塊調用、片段復用

十、 結語

熟練掌握這 16 個單字母函數,能讓 ThinkPHP 開發如虎添翼。建議新手先從 U、D、M、I、C、S 六大高頻函數入手,實戰中遇到再查表補充。框架源碼 ThinkPHP/Common/functions.php 是最權威的參考實現。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved