比較標簽
比(bi)較標(biao)簽(qian)用(yong)于簡(jian)單的變(bian)量(liang)比(bi)較,復雜(za)的判斷條件(jian)可(ke)以用(yong)if標(biao)簽(qian)替換(huan),比(bi)較標(biao)簽(qian)是一(yi)組標(biao)簽(qian)的集(ji)合,基本(ben)上用(yong)法都一(yi)致,如下:
{比較標簽 name="變量" value="值"}
內容
{/比較標簽}
系(xi)統支(zhi)持的比(bi)較(jiao)標(biao)簽以及(ji)所表(biao)示的含義分別是(shi):
| 標簽 | 含義 |
|---|---|
| eq或者 equal | 等于 |
| neq 或者notequal | 不等于 |
| gt | 大于 |
| egt | 大于等于 |
| lt | 小于 |
| elt | 小于等于 |
| heq | 恒等于 |
| nheq | 不恒等于 |
他們的(de)用(yong)法(fa)基本是一(yi)致(zhi)的(de),區別在于判斷(duan)的(de)條件不同(tong),并且所有的(de)比(bi)較標簽都可以(yi)和else標簽一(yi)起使用(yong)。
例如,要求name變量的值等(deng)于value就輸出,可以使用:
{eq name="name" value="value"}value{/eq}
或者
{equal name="name" value="value"}value{/equal}
也可(ke)以支持和else標簽混合使用:
{eq name="name" value="value"}
相等(deng)
{else/}
不(bu)相等
{/eq}
當(dang) name變量的值大于5就輸出
{gt name="name" value="5"}value{/gt}
當(dang)name變量(liang)的(de)值不小于5就輸出
{egt name="name" value="5"}value{/egt}
比較標簽(qian)中(zhong)的變(bian)量可(ke)以(yi)支(zhi)持對象的屬性或者數(shu)組,甚(shen)至可(ke)以(yi)是系統變(bian)量,例如(ru): 當vo對象的屬性(或者數(shu)組,或者自動判斷)等(deng)于5就輸出(chu)
{eq name="vo.name" value="5"}
{$vo.name}
{/eq}
當(dang)vo對象(xiang)的屬性等于5就輸出
{eq name="vo:name" value="5"}
{$vo.name}
{/eq}
當(dang)$vo['name']等(deng)于5就輸(shu)出
{eq name="vo['name']" value="5"}
{$vo.name}
{/eq}
而且(qie)還可以支(zhi)持對變(bian)量使用函數 當(dang)vo對象的屬(shu)性值的字符串長度等(deng)于(yu)5就輸出
{eq name="vo:name|strlen" value="5"}{$vo.name}{/eq}
變(bian)量名可以支持系統變(bian)量的方式,例如:
{eq name="Think.get.name" value="value"}相等(deng){else/}不(bu)相等{/eq}
通常(chang)比較標簽的(de)值是一個(ge)字(zi)(zi)符(fu)串或者數字(zi)(zi),如果需要使用變量,只(zhi)需要在前(qian)面添加“$”標志: 當vo對象(xiang)的(de)屬性等(deng)于$a就輸出
{eq name="vo:name" value="$a"}{$vo.name}{/eq}
所有(you)的(de)比(bi)較(jiao)標簽(qian)(qian)可(ke)以統一使用compare標簽(qian)(qian)(其實所有(you)的(de)比(bi)較(jiao)標簽(qian)(qian)都是(shi)compare標簽(qian)(qian)的(de)別名),例(li)如(ru): 當name變(bian)量的(de)值等于5就輸出
{compare name="name" value="5" type="eq"}value{/compare}
等效于
{eq name="name" value="5" }value{/eq}
其中type屬性的值就是上(shang)面列(lie)出的比(bi)較(jiao)標簽名稱
