前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >内置标签

内置标签

作者头像
PM吃瓜
发布2019-08-13 10:42:06
7030
发布2019-08-13 10:42:06
举报

ThinkPHP模版中的内置标签,所谓内置标签就是模版引擎提供的一组可以完成控制、循环和判断功能的类似 HTML 语法的标签。

一.判断比较 ThinkPHP 内置了 IF 标签用于在模版中进行条件判断。 //IF 语句的完整格式 <if condition="$user eq '蜡笔小新'"> 小新 <elseif condition="$user eq '黑崎一护'" /> 一护 <else /> 错误 </if>

PS: condition 属性中支持 eq 等判断表达式, 由于会导致模版解析混淆, 所以不支持 “>” 、 “<”等表达式。 //condition 条件里可以使用 PHP 函数 <if condition="mb_substr($user,0,3,'UTF-8') eq '蜡笔小'"> //condition 条件里使用点语法,智能判断数组或对象 <if condition="$data.user eq '蜡笔小新'"> //condition 条件里使用冒号语法,直接使用对象 <if condition="$data:user eq '蜡笔小新'"> //condition 条件里使用系统变量 <if condition="$Think.get.user eq '蜡笔小新'">

PS:由于 if 标签的 condition 属性里面基本上使用的是 php语法,尽可能使用判断标签和 Switch 标签会更加简洁,原则上来说,能够用 switch 和比较标签解决的尽量不用 if 标签完成。因为 switch 和比较标签可以使用变量调节器和系统变量。如果某些特殊的要求下面,IF 标签仍然无法满足要求的话,可以使用原生 php代码或者 PHP 标签来直接书写代码。 ThinkPHP 内置了 Switch 标签用于多条件判断。 //name 的值和 IF 语句一样,可以是变量、数组、对象、函数或系统变量 <switch name="$user"> <case value="蜡笔小新">小新</case> <case value="黑崎一护">一护</case> <default />错误 </switch> 默认情况下,case会自动添加 break 语句防止穿透,如果你就是想要穿透,那么可以去除 break。当然,绝大部分不需要设置 break。 //去除 break <case value="蜡笔小新" break="0">小新</case>

ThinkPHP 提供了一组比较标签用于简单的变量比较,复杂的判断条件可以用 IF 标签替换。

//控制器变量$user=蜡笔小新,输出小新 <eq name="user" value="蜡笔小新">小新</eq> PS:name 的值和 IF 语句一样,可以是变量、数组、对象、函数或系统变量,其他比较标签使用方法类似,这里不在赘述。比较标签还提供了一个统一标签 compare,比较类型通过 type 属性完成。 //compare 统一方法 <compare type="eq" name="user" value="蜡笔小新">小新</compare> ThinkPHP 提供了一组范围判断标签:in、notin、between、notbetween四个标签,都用于判断变量是否在某个范围中。

//如果 id 是 1,2,3 任意一个将输出 <in name="id" value="1,2,3">id 在范围内</in> //in 标签,支持 else <in name="id" value="1,2,3"> id在范围内 <else/> id不在范围内 </in> //notin 标签,正好相反 <notin name="id" value="1,2,3">id 不在范围内</notin> //between标签,从哪里到哪里的范围 <between name="id" value="1,10">id 在范围内</between> //notbetween标签,从哪里到哪里的范围 <notbetween name="id" value="1,10">id 不在范围内</notbetween> //range标签,可以统一in、notin、between和notbetween <range name="id" value="1,2,3" type="in">id 在范围内</range>

//name值可以是系统变量 <in name="Think.get.id" value="1,2,3">id 在范围内</in> //value值可以是变量或系统变量 <in name="id" value="$Think.get.range">id 在范围内</in> ThinkPHP 模版提供了一组用于判断变量的标签。 //判断变量是否已赋值,赋值了就输出,空字符串也算赋值 <present name="user">user 已经赋值</present> //判断变量是否已赋值,没有创建或赋值为null,都算没有值 <notpresent name="user">user 还没有值</notpresent> //判断变量是否已赋值,组合 <present name="user"> user已赋值 <else /> user未赋值 </present> //判断变量是否已赋值,系统变量

<present name="Think.get.user">$_GET['user']已赋值</present> //判断变量是否为空,空则输出 <empty name="user">user 为空值</empty> //判断变量是否为空,不空则输出 <notempty name="user">user不为空值</notempty> //判断变量是否为空,组合 <empty name="user"> user为空值 <else /> user不为空值 </empty> //判断变量是否为空,系统变量 <empty name="Think.get.user">$_GET['user']为空值</empty> //判断常量是否定义,定义了输出 <defined name="APP_PATH">APP_PATH 常量已定义</defined> //判断常量是否定义,没定义输出 <notdefined name="APP_PATH">APP_PATH 常量未定义</notdefined> //判断常量是否定义,组合 <defined name="APP_PATH"> APP_PATH常量已定义 <else /> APP_PATH常量未定义 </defined>

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-03-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Tech爬虫 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档