比較標簽用于簡單的變量比較,復雜的判斷條件可以用if標簽替換,比較標簽是一組標簽的集合,基本上用法都一致,如下:
~~~
{比較標簽 name="變量" value="值"}
內容
{/比較標簽}
~~~
系統支持的比較標簽以及所表示的含義分別是:
| 標簽 | 含義 |
|-----|-----|
| eq或者 equal | 等于 |
| neq 或者notequal | 不等于 |
| gt | 大于 |
| egt | 大于等于 |
| lt | 小于 |
| elt | 小于等于 |
| heq | 恒等于 |
| nheq | 不恒等于 |
他們的用法基本是一致的,區別在于判斷的條件不同,并且所有的比較標簽都可以和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屬性的值就是上面列出的比較標簽名稱