{if},{elseif},{else} Smarty における {if} ステートメントは、PHP の if と同等の柔軟性を持っています。 さらに、テンプレートエンジンのための機能をいくつか追加しています。 全ての {if} は、対応する {/if} とペアである必要があります。{else}{elseif} も使用できます。 ||or&&andis_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} ]]>