smarty @Wiki

{if}

最終更新:

匿名ユーザー

- view
だれでも歓迎! 編集

{if},{elseif},{else}

テンプレートエンジンの特徴の一つとして、Smartyにおいての {if} ステートメントは php のそれとほぼ同様の柔軟性を持っています。
全てのifと/ifはペアである必要があります。また、elseとelseifも使用できます。|| , or , && , and といった全ての PHP 条件演算子は認識されます。

以下は認識される条件演算子の一覧です。これらはスペースによって周りの要素から離される必要があります。
[] 内に記載された項目は任意である事に注意して下さい。"PHP相当"は当てはまるものが示されます。

条件演算子 代替 構文例 意味 PHP相当
== eq $a eq $b 同等 ==
!= ne, neq $a neq $b 同等でない !=
gt $a gt $b より大きい
< lt $a lt $b より小さい <
>= gte, ge $a ge $b より大きい又は同等 >=
<= lte, le $a le $b より小さい又は同等 <=
! not not $a 否定 (単項) !
% mod $a mod $b 剰余 %
is [not] div by $a is not div by 4 ...で割り切れる $a % $b == 0
is [not] even $a is not even 偶数である[ない] (単項) $a % 2 == 0
is [not] even by $a is not even by $b 同等である[ない]グループ分け ($a / $b) % 2 == 0
is [not] odd $a is not odd 奇数である[ない] (単項) $a % 2 != 0
is [not] odd by $a is not odd by $b 余りがある[ない]グループ分け ($a / $b) % 2 != 0

例 7-11. if ステートメント

{if $name eq "Fred"}
Welcome Sir.
{elseif $name eq "Wilma"}
Welcome Ma'am.
{else}
Welcome, whatever you are.
{/if}
{* 論理演算子"or"の***例 *}
{if $name eq "Fred" or $name eq "Wilma"}
...
{/if}

{* 上と同じ *}
{if $name == "Fred" || $name == "Wilma"}
...
{/if}

{* 次の文は機能しません。関係演算子はスペースによって周囲から離す必要があります *}
{if $name=="Fred" || $name=="Wilma"}
...
{/if}

{* 括弧()は使用可能 *}
{if ( $amount < 0 or $amount > 1000 ) and $volume >= #minVolAmt#}
...
{/if}

{* php関数を埋め込む事が可能 *}
{if count($var) gt 0}
...
{/if}

{* 値が偶数(even)か奇数(odd)か *}
{if $var is even}
...
{/if}
{if $var is odd}
...
{/if}
{if $var is not odd}
...
{/if}

{* 値が4で割り切れるか *}
{if $var is div by 4}
...
{/if}

{* 値がちょうど(even)であるか (2ずつグループ化したとき)
例.0=even, 1=even, 2=odd, 3=odd, 4=even, 5=even 等 *}
{if $var is even by 2}
...
{/if}
{* 0=even, 1=even, 2=even, 3=odd, 4=odd, 5=odd 等 *}
{if $var is even by 3}
...
{/if}
ウィキ募集バナー