Smarty マニュアル

前のページ

第 7章組み込み関数

次のページ

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

より小さい又は同等

<=

===



$a === 0

同一性のチェック

===

!

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}

ページ上段