ThinkPHP5 中的模板中内置了8种比较标签用于简单的变量比较(复杂的判断条件推荐使用if标签替换),比较标签用法基本一致,因此本文主要以eq标签进行使用方法说明。

基本语法

{比较标签 name="变量" value="值"}
内容
{/比较标签}

标签列表

标签 含义
eq或者 equal 等于
neq 或者notequal 不等于
gt 大于
egt 大于等于
lt 小于
elt 小于等于
heq 恒等于
nheq 不恒等于
ThinkPHP5 系统内置的模板比较标签表

示例

他们的用法基本是一致的,区别在于判断的条件不同,并且所有的比较标签都可以和else标签一起使用。

例如,要求name变量的值等于value就输出,可以使用:

{eq name="name" value="value"}value{/eq}

或者

{equal name="name" value="value"}value{/equal}

也可以支持和else标签混合使用:

{eq name="name" value="value"}
相等
{else/}
不相等
{/eq}

当 name变量的值大于5就输出

{gt name="name" value="5"}value{/gt}

当name变量的值不小于5就输出

{egt name="name" value="5"}value{/egt}

比较标签中的变量可以支持对象的属性或者数组,甚至可以是系统变量,例如: 当vo对象的属性(或者数组,或者自动判断)等于5就输出

{eq name="vo.name" value="5"}
{$vo.name}
{/eq}

当vo对象的属性等于5就输出

{eq name="vo:name" value="5"}
{$vo.name}
{/eq}

当$vo[‘name’]等于5就输出

{eq name="vo['name']" value="5"}
{$vo.name}
{/eq}

而且还可以支持对变量使用函数 当vo对象的属性值的字符串长度等于5就输出

{eq name="vo:name|strlen" value="5"}{$vo.name}{/eq}

变量名可以支持系统变量的方式,例如:

{eq name="Think.get.name" value="value"}相等{else/}不相等{/eq}

通常比较标签的值是一个字符串或者数字,如果需要使用变量,只需要在前面添加“$”标志: 当vo对象的属性等于$a就输出

{eq name="vo:name" value="$a"}{$vo.name}{/eq}

所有的比较标签可以统一使用compare标签(其实所有的比较标签都是compare标签的别名),例如: 当name变量的值等于5就输出

{compare name="name" value="5" type="eq"}value{/compare}

等效于

{eq name="name" value="5" }value{/eq}

其中type属性的值就是上面列出的比较标签名称