SSLモバイル

第3回 Smartyを使ってみる(その2:制御構造編) (その1)

前回はPHPからSmartyテンプレートに変数を渡し、その値をSmartyテンプレート上に表示する手順について説明しました。今回はその変数の値による条件分岐やループなどの制御構造をどのように実現するか説明します。

条件分岐

yossy先生

変数の値によって、表示したい内容を変更したい場合はよくあると思います。処理の成功メッセージ、エラーメッセージを切り分ける場合、配列の要素数が1以上ある場合と0の場合で中身を表示するか、空であることを伝えるか、…など。

こういった条件によって処理を分岐するためには{if}という記述を使用します。

{* $countの値が0より大きければ個数を表示する *}
{if $count 0}
<
p>全部で{$count}個のメッセージがあります。</p>
{/if}

上記の例のようにifの後に条件式を記述し、それが真(条件式が正しい)であれば以下の{/if}までの記述が実行、表示されます。もし条件式が偽(条件式が正しくない)であれば、何も実行されません。もし偽の時に別のメッセージを表示する場合は{else}を用います。また、別条件を記述する際に{elseif}を用いることも出来ます。

{* $countの値が0より大きければ個数を表示する *}
{if $count 0}
<
p>全部で{$count}個のメッセージがあります。</p>
{elseif 
$count == 0}
<
p>メッセージはありません。</p>
{else}
<
p>メッセージ数がマイナスって…</p>
{/if}

条件の記述にはPHPで利用できる==や!=などの比較演算子、||や&&、and、orなどの論理演算子も用いることが出来ます。またis_array(),empty(),count()など、PHPの関数を用いて条件を記述することも可能です。

{* $countの値が0より大きければ個数を表示する(改) *}
{if isset$count ) and $count 0}
<
p>全部で{$count}個のメッセージがあります。</p>
{/if}

「yossy先生のSmarty講座」のトップへ