ThinkPHP 框架提供了一組極具特色的單字母快捷函數,極大提升了開發效率。但因字母含義抽象,初學者難以記憶。本文將 16 個核心函數按功能分類,附帶簽名、參數說明與典型用例,供開發者隨時查閱。
U($url='', $vars='', $suffix=true, $domain=false)
$url:支持 模塊/控制器/操作#錨點@域名?參數 完整表達式$vars:陣列或字符串形式傳參$suffix:偽靜態後綴,默認讀配置$domain:是否輸出完整域名示例:U('User/profile', ['id'=>123]) → /index.php/User/profile/id/123.html
D($name='', $layer='')
Application/模塊/Model/名稱Model.class.phpD('Admin/User')M($name='', $tablePrefix='', $connection='')
M('MongoModel:User')A($name='', $layer='', $level='')
R($url, $vars=[], $layer='')
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 等過濾器C($name=null, $value=null, $default=null)
C('DB_HOST')C(['DB_HOST'=>'127.0.0.1'])C('KEY', null, 'default')E($msg, $code=0)
統一拋出 Think\Exception,配合框架異常處理機制。
G($start, $end='', $dec=4)
G('begin'); // 記錄起點
// ... 業務代碼
G('end'); // 記錄終點
echo G('begin','end',6); // 耗時秒,6 位小數
echo G('begin','end','m'); // 內存增量(需 MEMORY_LIMIT_ON=true)
N($key, $step=0, $save=false)
N('db', 1); // 記錄一次 DB 操作
N('read', 1); // 記錄一次讀取
echo N('db'); // 輸出本請求 DB 總次數
L($name=null, $value=null)
T($template='', $layer='')
資源://模塊@主題/控制器/操作B($name, $tag='', &$params=null)
$tagW($name, $data=[])
S($name, $value='', $options=null)
$options 可傳過期時間、驅動參數F($name, $value='', $path=DATA_PATH)
Data/ 目錄| 函數 | 核心用途 | 典型場景 |
|---|---|---|
| U | URL 組裝 | 模板生成鏈接、重定向 |
| D/M | 模型實例化 | 業務邏輯/輕量 CRUD |
| I | 輸入獲取 | 控制器接收參數 |
| C | 配置讀寫 | 動態修改設置 |
| G | 性能統計 | 接口耗時、內存分析 |
| S/F | 緩存/文件 | 數據暫存、靜態化 |
| A/R/W | 控制器/Widget | 跨模塊調用、片段復用 |
熟練掌握這 16 個單字母函數,能讓 ThinkPHP 開發如虎添翼。建議新手先從 U、D、M、I、C、S 六大高頻函數入手,實戰中遇到再查表補充。框架源碼 ThinkPHP/Common/functions.php 是最權威的參考實現。