{if},{elseif},{else}
テンプレートエンジンの特徴の一つとして、Smartyにおいての {if} ステートメントは php のそれとほぼ同様の柔軟性を持っています。
全てのifと/ifはペアである必要があります。また、elseとelseifも使用できます。|| , or , && , and といった全ての PHP 条件演算子は認識されます。
全てのifと/ifはペアである必要があります。また、elseとelseifも使用できます。|| , or , && , and といった全ての PHP 条件演算子は認識されます。
以下は認識される条件演算子の一覧です。これらはスペースによって周りの要素から離される必要があります。
[] 内に記載された項目は任意である事に注意して下さい。"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}