{if},{elseif},{else}
Smarty における {if} ステートメントは、PHP の
if と同等の柔軟性を持っています。
さらに、テンプレートエンジンのための機能をいくつか追加しています。
全ての {if} は、対応する
{/if} とペアである必要があります。{else}
と {elseif} も使用できます。
|| や or、
&&、and、
is_array() など、PHP の条件演算子や関数はすべて利用可能です。
$security
が有効な場合は、 $security_settings
の配列 IF_FUNCS に含まれる 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
以下
<=
===
$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
{if} ステートメント
1000 ) and $volume >= #minVolAmt#}
...
{/if}
{* PHP 関数を埋め込むことも可能 *}
{if count($var) gt 0}
...
{/if}
{* 配列のチェック *}
{if is_array($foo) }
.....
{/if}
{* null でないことのチェック *}
{if isset($foo) }
.....
{/if}
{* 値が偶数か奇数か *}
{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 であるかどうか
0=even, 1=even, 2=odd, 3=odd, 4=even, 5=even, etc.
*}
{if $var is even by 2}
...
{/if}
{* 0=even, 1=even, 2=even, 3=odd, 4=odd, 5=odd, etc. *}
{if $var is even by 3}
...
{/if}
]]>
{if} のその他の例
0)
{* foreach ループを実行します *}
{/if}
]]>