ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
本篇汇总了系统提供的助手函数的基础用法,更详细的请参考相关章节。 系统的助手函数大致分为下面几个类型: - - [加载和实例化](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>)} ``` ```