本篇汇总了系统提供的助手函数的基础用法,更详细的请参考相关章节。
系统的助手函数大致分为下面几个类型:
- - [加载和实例化](http://ihavenolimitations.xyz/thinkphp/thinkphp5_quickstart/211126#u52A0u8F7Du548Cu5B9Eu4F8Bu5316)
- [数据操作](http://ihavenolimitations.xyz/thinkphp/thinkphp5_quickstart/211126#u6570u636Eu64CDu4F5C)
- [日志和调试](http://ihavenolimitations.xyz/thinkphp/thinkphp5_quickstart/211126#u65E5u5FD7u548Cu8C03u8BD5)
- [响应输出](http://ihavenolimitations.xyz/thinkphp/thinkphp5_quickstart/211126#u54CDu5E94u8F93u51FA)
- [其它](http://ihavenolimitations.xyz/thinkphp/thinkphp5_quickstart/211126#u5176u5B83)
## 加载和实例化
> ### import:导入所需的类库 同java的Import 本函数有缓存功能
### 参数:
名称 描述 默认值 class 类库命名空间字符串 必须 baseUrl 起始路径,留空为自动识别 空 ext 导入的文件扩展名 EXT常量### 返回值:
导入成功返回true,否则返回false。
### 示例:
注意该方法只是导入文件,和是否有命名空间和如何实例化无关。
```
<pre class="calibre18">
```
$result = <span class="hljs-keyword">import</span>(<span class="hljs-string">'org/util/Array'</span>);
```
```
> ### vendor:导入vendor目录下的第三方类库(非命名空间)
### 参数:
名称 描述 默认值 class 要导入的类库 必须 ext 导入的文件扩展名 EXT常量### 返回值:
导入成功返回true,否则返回false。
### 示例:
注意该方法只是导入文件,和是否有命名空间和如何实例化无关。
```
<pre class="calibre18">
```
<span class="hljs-regexp">$result</span> = vendor(<span class="hljs-string">'org/util/Array'</span>);
```
```
> ### load\_trait:快速导入Traits PHP5.5以上无需调用
### 参数:
名称 描述 默认值 class 要导入的trait库 必须 ext 类库后缀 EXT常量### 返回值:
导入成功返回true,否则返回false。
### 示例:
```
<pre class="calibre18">
```
load_trait(<span class="hljs-string">'controller/Jump'</span>);
```
```
> ### model:实例化模型类(单例)
### 参数:
名称 描述 默认值 name Model名称 必须 layer 模型层名称 model appendSuffix 是否添加类名后缀 false### 返回值:
模型实例
### 示例:
```
<pre class="calibre18">
```
<span class="hljs-regexp">$user</span> = model(<span class="hljs-string">'User'</span>);
```
```
> ### validate:实例化验证器类(单例)
### 参数:
名称 描述 默认值 name 验证器名称 必须 layer 验证层名称 validate appendSuffix 是否添加类名后缀 false### 返回值:
验证器实例
### 示例:
```
<pre class="calibre18">
```
<span class="hljs-regexp">$validate</span> = validate(<span class="hljs-string">'User'</span>);
```
```
> ### db:实例化数据库类
### 参数:
名称 描述 默认值 name 操作的数据表名称(不含前缀) 必须 config 数据库配置参数,数组或者字符串,留空获取配置文件中的配置 空 force 是否强制重新连接 true### 返回值:
数据库查询对象实例
### 示例:
```
<pre class="calibre18">
```
<span class="hljs-regexp">$db</span> = db(<span class="hljs-string">'user'</span>);
```
```
> ### controller:实例化控制器类
### 参数:
名称 描述 默认值 name 控制器资源地址 \[模块/\]控制器 必须 layer 控制器层名称 controller appendSuffix 是否添加类名后缀 false### 返回值:
控制器对象实例
### 示例:
```
<pre class="calibre18">
```
<span class="hljs-regexp">$user</span> = controller(<span class="hljs-string">'Admin/User'</span>);
```
```
> ### action:调用模块的操作方法 参数格式 \[模块/控制器/\]操作
### 参数:
名称 描述 默认值 url 调用地址 必须 vars 调用参数 支持字符串和数组 空 layer 要调用的控制层名称 controller appendSuffix 是否添加类名后缀 false### 返回值:
根据方法的返回值
### 示例:
```
<pre class="calibre18">
```
<span class="hljs-regexp">$result</span> = action(<span class="hljs-string">'Admin/User/getInfo'</span>);
```
```
> ### request:获取当前的请求对象实例(单例)
### 参数:
无
### 返回值:
`\think\Request`对象实例
### 示例:
```
<pre class="calibre18">
```
<span class="hljs-function"><span class="hljs-title">request</span><span class="hljs-number">()</span>-></span><span class="hljs-operator">url</span>();
<span class="hljs-function"><span class="hljs-title">request</span><span class="hljs-number">()</span>-></span><span class="hljs-operator">param</span>();
```
```
> ### response:创建响应对象实例
### 参数:
名称 描述 默认值 data 响应输出数据 空 code 输出状态码 200 header 输出HEADER信息 空 type 响应输出类型 html### 返回值:
`\think\response`对象实例
### 示例:
```
<pre class="calibre18">
```
response(<span class="hljs-regexp">$data</span>,[],[],<span class="hljs-string">'json'</span>);
```
```
## 数据操作
> ### session:Session操作助手函数
### 参数:
名称 描述 默认值 name session名称,如果为数组表示进行session初始化 必须 value session值 空 prefix session变量前缀 null### 返回值:
多种情况
### 示例:
```
<pre class="calibre18">
```
<span class="hljs-comment">// session初始化</span>
session([<span class="hljs-string">'id'</span>=><span class="hljs-string">'think'</span>,<span class="hljs-string">'prefix'</span>=><span class="hljs-string">'think'</span>]);
<span class="hljs-comment">// session设置</span>
session(<span class="hljs-string">'name'</span>,<span class="hljs-string">'value'</span>);
<span class="hljs-comment">// session判断</span>
session(<span class="hljs-string">'?name'</span>);
<span class="hljs-comment">// session获取</span>
session(<span class="hljs-string">'name'</span>);
<span class="hljs-comment">// session删除</span>
session(<span class="hljs-string">'name'</span>,<span class="hljs-keyword">null</span>);
<span class="hljs-comment">// session清空</span>
session(<span class="hljs-keyword">null</span>);
```
```
> ### cookie:Cookie操作助手函数
### 参数:
名称 描述 默认值 name cookie名称,如果为数组表示进行cookie初始化 必须 value cookie值 空 option 参数 null### 返回值:
多种情况
### 示例:
```
<pre class="calibre18">
```
<span class="hljs-comment">// cookie初始化</span>
cookie([<span class="hljs-string">'expire'</span>=><span class="hljs-number">3600</span>,<span class="hljs-string">'prefix'</span>=><span class="hljs-string">'think'</span>]);
<span class="hljs-comment">// cookie设置</span>
cookie(<span class="hljs-string">'name'</span>,<span class="hljs-string">'value'</span>);
<span class="hljs-comment">// cookie判断</span>
cookie(<span class="hljs-string">'?name'</span>);
<span class="hljs-comment">// cookie获取</span>
cookie(<span class="hljs-string">'name'</span>);
<span class="hljs-comment">// cookie删除</span>
cookie(<span class="hljs-string">'name'</span>,<span class="hljs-keyword">null</span>);
<span class="hljs-comment">// cookie清空</span>
cookie(<span class="hljs-keyword">null</span>);
```
```
> ### cache:缓存操作助手函数
### 参数:
名称 描述 默认值 name 缓存名称,如果为数组表示进行缓存初始化 必须 value 缓存值 空 options 缓存参数 或者传入数字的时候为有效期 null tag 缓存标签 null### 返回值:
多种情况
### 示例:
```
<pre class="calibre18">
```
// 缓存初始化
<span class="hljs-operator"><span class="hljs-keyword">cache</span>([<span class="hljs-string">'expire'</span>=><span class="hljs-number">3600</span>,<span class="hljs-string">'prefix'</span>=><span class="hljs-string">'think'</span>]);</span>
// 缓存设置
<span class="hljs-operator"><span class="hljs-keyword">cache</span>(<span class="hljs-string">'name'</span>,<span class="hljs-string">'value'</span>,<span class="hljs-number">3600</span>);</span>
// 缓存判断
<span class="hljs-operator"><span class="hljs-keyword">cache</span>(<span class="hljs-string">'?name'</span>);</span>
// 缓存获取
<span class="hljs-operator"><span class="hljs-keyword">cache</span>(<span class="hljs-string">'name'</span>);</span>
// 缓存删除
<span class="hljs-operator"><span class="hljs-keyword">cache</span>(<span class="hljs-string">'name'</span>,<span class="hljs-number">null</span>);</span>
```
```
> ### config:设置或者获取配置参数
### 参数:
名称 描述 默认值 name 参数名 如果是数组表示批量赋值 必须 value 参数值 空 range 作用域,留空表示当前作用域 空### 返回值:
根据情况
### 示例:
```
<pre class="calibre18">
```
config(<span class="hljs-string">'name'</span>,<span class="hljs-string">'value'</span>);
config(<span class="hljs-string">'?name'</span>);
config(<span class="hljs-string">'name'</span>);
config([<span class="hljs-string">'name'</span>=><span class="hljs-string">'value'</span>]);
```
```
> ### input:获取输入数据 支持默认值和过滤
### 参数:
名称 描述 默认值 key 获取的变量名 必须 default 默认值 空 filter 过滤方法 空### 返回值:
根据情况
### 示例:
```
<pre class="calibre18">
```
input(<span class="hljs-string">'name'</span>);
input(<span class="hljs-string">'?name'</span>);
input(<span class="hljs-string">'get.id'</span>,<span class="hljs-number">0</span>);
```
```
## 日志和调试
> ### dump:浏览器友好的变量输出
### 参数:
名称 描述 默认值 var 调试变量或者信息 必须 echo 是否输出 默认为true 如果为false 则返回输出字符串 true label 标签 空### 返回值:
无
### 示例:
```
<pre class="calibre18">
```
<span class="hljs-keyword">dump</span>(<span class="hljs-regexp">$data</span>);
<span class="hljs-keyword">dump</span>(<span class="hljs-regexp">$data</span>,false);
<span class="hljs-keyword">dump</span>(<span class="hljs-string">'测试输出'</span>);
```
```
> ### halt:调试变量并中止
和dump函数的区别在于调试输出后中止执行后面的程序。
### 参数:
名称 描述 默认值 var 调试变量或者信息 必须### 返回值:
无
### 示例:
```
<pre class="calibre18">
```
halt(<span class="hljs-regexp">$data</span>);
halt(<span class="hljs-string">'测试输出'</span>);
```
```
> ### trace:记录日志信息
### 参数:
名称 描述 默认值 log log信息 支持字符串和数组 level 日志级别 log### 返回值:
没有传任何参数的时候 获取日志信息,否则为记录日志
### 示例:
```
<pre class="calibre18">
```
trace(<span class="hljs-string">'日志错误信息'</span>,<span class="hljs-string">'error'</span>);
```
```
> ### exception:抛出异常
### 参数:
名称 描述 默认值 msg 异常消息 必须 code 异常代码 0 exception 异常类名 留空抛出 `\think\Exception` 异常 空### 返回值:
字符串
### 示例:
```
<pre class="calibre18">
```
<span class="hljs-keyword">exception</span>(<span class="hljs-string">'错误'</span>);
<span class="hljs-keyword">exception</span>(<span class="hljs-string">'权限错误'</span>,<span class="hljs-number">10002</span>,<span class="hljs-string">'\app\common\AuthException'</span>);
```
```
> ### debug:调试时间(微秒)和内存使用情况
### 参数:
名称 描述 默认值 start 开始标签 必须 end 结束标签 空字符串 dec 小数位 如果是m 表示统计内存占用 6### 返回值:
根据情况
### 示例:
```
<pre class="calibre18">
```
debug('<span class="hljs-operator"><span class="hljs-keyword">begin</span><span class="hljs-string">');
// ...
echo debug('</span><span class="hljs-keyword">begin</span><span class="hljs-string">','</span><span class="hljs-keyword">end</span><span class="hljs-string">',6);
echo debug('</span><span class="hljs-keyword">begin</span><span class="hljs-string">','</span><span class="hljs-keyword">end</span><span class="hljs-string">','</span><span class="hljs-keyword">m</span><span class="hljs-string">');</span></span>
```
```
## 响应输出
> ### view:模板渲染输出
### 参数:
名称 描述 默认值 template 模板文件 空 vars 模板变量 无 replace 模板替换规则 空 code 状态码 200### 返回值:
`\think\response\View`对象实例
### 示例:
```
<pre class="calibre18">
```
view(<span class="hljs-string">'index/hello'</span>,[<span class="hljs-string">'name'</span>=><span class="hljs-string">'thinkphp'</span>]);
```
```
> ### json:创建JSON响应对象实例
### 参数:
名称 描述 默认值 data 响应输出数据 空 code 输出状态码 200 header 输出头信息 空 options 输出参数 空### 返回值:
`\think\response\Json`对象实例
### 示例:
```
<pre class="calibre18">
```
json([<span class="hljs-string">'id'</span>=><span class="hljs-number">10</span>, <span class="hljs-string">'name'</span>=><span class="hljs-string">'thinkphp'</span>]);
```
```
> ### jsonp:创建JSONP响应对象实例
### 参数:
名称 描述 默认值 data 响应输出数据 空 code 输出状态码 200 header 输出头信息 空 options 输出参数 空### 返回值:
`\think\response\Jsonp`对象实例
### 示例:
```
<pre class="calibre18">
```
jsonp([<span class="hljs-string">'id'</span>=><span class="hljs-number">10</span>, <span class="hljs-string">'name'</span>=><span class="hljs-string">'thinkphp'</span>]);
```
```
> ### xml:创建XML响应对象实例
### 参数:
名称 描述 默认值 data 响应输出数据 空 code 输出状态码 200 header 输出头信息 空 options 输出参数 空### 返回值:
`\think\response\Xml`对象实例
### 示例:
```
<pre class="calibre18">
```
xml([<span class="hljs-string">'id'</span>=><span class="hljs-number">10</span>, <span class="hljs-string">'name'</span>=><span class="hljs-string">'thinkphp'</span>]);
```
```
> ### redirect:创建重定向响应对象实例
### 参数:
名称 描述 默认值 url 重定向地址 空 params 参数,当传入数字的时候表示状态码 空 code 状态码 302### 返回值:
`\think\response\Redirect`对象实例
### 示例:
```
<pre class="calibre18">
```
redirect(<span class="hljs-string">'http://thinkphp.cn'</span>, [<span class="hljs-string">'id'</span>=><span class="hljs-number">10</span>, <span class="hljs-string">'name'</span>=><span class="hljs-string">'thinkphp'</span>],<span class="hljs-number">301</span>);
redirect(<span class="hljs-string">'http://thinkphp.cn/blog'</span>, <span class="hljs-number">301</span>);
```
```
> ### abort:抛出HTTP异常
### 参数:
名称 描述 默认值 code 状态码 或者 Response对象实例 必须 message 错误信息 空 header 参数 空### 返回值:
无
### 示例:
```
<pre class="calibre18">
```
abort(<span class="hljs-number">401</span>, <span class="hljs-string">'页面不存在'</span>);
abort(<span class="hljs-number">500</span>, <span class="hljs-string">'服务器错误'</span>);
```
```
## 其它
> ### token:生成表单令牌(form表单项)
### 参数:
名称 描述 默认值 name 令牌名称 **token** type 令牌生成方法 md5### 返回值:
字符串
### 示例:
```
<pre class="calibre18">
```
<form action=<span class="hljs-string">""</span> >
<input <span class="hljs-operator"><span class="hljs-keyword">type</span>=</span><span class="hljs-string">"text"</span> name=<span class="hljs-string">"name"</span> />
{:token(<span class="hljs-operator">'__hash_</span>_')}
<input <span class="hljs-operator"><span class="hljs-keyword">type</span>=</span><span class="hljs-string">"submit"</span> />
</form>
```
```
> ### url:生成URL地址(支持路由反解)
### 参数:
名称 描述 默认值 url 路由地址 空 vars 变量 空 suffix 生成的URL后缀 true 表示自动识别配置 domain 是否带域名生成 false### 返回值:
字符串
### 示例:
```
<pre class="calibre18">
```
url(<span class="hljs-string">'index/index/hello'</span>,[<span class="hljs-string">'name'</span>=><span class="hljs-string">'thinkphp'</span>]);
url(<span class="hljs-string">'index/index/hello'</span>,<span class="hljs-string">'name&thinkphp'</span>);
```
```
> ### lang:获取语言变量值
### 参数:
名称 描述 默认值 name 语言变量名 必须 vars 动态变量值 空 lang 语言 留空自动识别当前语言 空### 返回值:
字符串
### 示例:
```
<pre class="calibre18">
```
lang(<span class="hljs-string">'lang_str'</span>);
```
```
> ### widget:渲染输出Widget
### 参数:
名称 描述 默认值 name Widget名称 必须 data 传入的参数 空### 返回值:
根据情况
### 示例:
通常在模板文件中调用
```
<pre class="calibre42">
```
{<span class="hljs-operator">:widget</span>(<span class="hljs-string">'name'</span>)}
```
```
- 脕茫隆垄脨貌脩脭
- 脕茫隆垄脨貌脩脭
- 脪禄隆垄禄霉麓隆
- 脪禄隆垄禄霉麓隆
- 露镁隆垄URL潞脥脗路脫脡
- 露镁隆垄URL潞脥脗路脫脡
- 脠媒隆垄脟毛脟贸潞脥脧矛脫娄
- 脠媒隆垄脟毛脟贸潞脥脧矛脫娄
- 脣脛隆垄脢媒戮脻驴芒
- 脣脛隆垄脢媒戮脻驴芒
- 脦氓隆垄虏茅脩炉脫茂脩脭
- 脦氓隆垄虏茅脩炉脫茂脩脭
- 脕霉隆垄脛拢脨脥潞脥鹿脴脕陋
- 拢篓1拢漏脛拢脨脥露篓脪氓
- 拢篓2拢漏禄霉麓隆虏脵脳梅
- 拢篓3拢漏露脕脠隆脝梅潞脥脨脼赂脛脝梅
- 拢篓4拢漏脌脿脨脥脳陋禄禄潞脥脳脭露炉脥锚鲁脡
- 拢篓5拢漏虏茅脩炉路露脦搂
- 拢篓6拢漏脢盲脠毛潞脥脩茅脰陇
- 拢篓7拢漏鹿脴脕陋
- 拢篓8拢漏脛拢脨脥脢盲鲁枚
- 脝脽隆垄脢脫脥录潞脥脛拢掳氓
- 脝脽隆垄脢脫脥录潞脥脛拢掳氓
- 掳脣隆垄碌梅脢脭潞脥脠脮脰戮
- 掳脣隆垄碌梅脢脭潞脥脠脮脰戮
- 戮脜隆垄API驴陋路垄
- 戮脜隆垄API驴陋路垄
- 脢庐隆垄脙眉脕卯脨脨鹿陇戮脽
- 脢庐隆垄脙眉脕卯脨脨鹿陇戮脽
- 脢庐脪禄隆垄脌漏脮鹿
- 脢庐脪禄隆垄脌漏脮鹿
- 脢庐露镁隆垄脭脫脧卯
- Cookie
- Session
- 碌楼脭陋虏芒脢脭
- 脥录脧帽麓娄脌铆
- 脦脛录镁脡脧麓芦
- 脩茅脰陇脗毛
- 赂陆脗录
- A隆垄鲁拢录没脦脢脤芒录炉
- B隆垄3.2潞脥5.0脟酶卤冒
- C隆垄脰煤脢脰潞炉脢媒
- 路卢脥芒脝陋拢潞脩搂脧掳ThinkPHP5碌脛脮媒脠路脳脣脢脝
- 路卢脥芒脝陋拢潞脩搂脧掳ThinkPHP5碌脛脮媒脠路脳脣脢脝