.Water-Sunlight
.サイトメニュー
.検索
.オンライン状況
登録ユーザ: 0
ゲスト: 15
.
<< Prev
設定ファイルの利用
« INDEX »
PHP テンプレート編
Next >>
プログラムの作成
作成日:2006/08/07

4B.2.4 ブロック関数と配列変数の使用

<div id="sidebar">
<ul>
<{if isset($menu)}>
<li><h3>Menu</h3>
  <ul class="menu">
  <{foreach item=menu_item from=$menu}>
    <li><a href="<{$menu_item.url}>"><{$menu_item.title}></a></li>
  <{/foreach}>
  </ul>
</li>
<{/if}>

 ブロック関数はテンプレート関数の一種で、PHPのif文やforeach文などのようにブロックを作る事ができます。 最も良く使われるブロック関数はif関数とforeach関数です。 if関数はテンプレート変数による条件分岐を、foreach関数は配列要素にアクセスするために使用されます。

if関数:
<{if 条件式}> ・・・ <{elseif 条件式}> ・・・ <{else}> ・・・ <{/if}> <{* 条件式にはPHPで使用できる全ての演算子と関数が利用できます *}>
foreach関数:
<{foreach from=$array item=identifier [key=identifier] }> ・・・ {/foreach} <{* 配列のキーにアクセスする場合はkey属性を指定します *}>

 Smartyでは配列要素にアクセスのに2つの方法があります。

配列の種類表記法
添字配列
{$array[0]}
{$array[1]}
連想配列
{$hash.key}

上例ではforeach関数を使って添字配列の要素にアクセスしています。そして、その要素は連想配列です。 少し分かり難いですが、PHPがテンプレート変数をアサインしている(以下の)コードを見れば、よく理解できると思います:

foreach($contents as $name)
{
  ・・・・
  $menu[] = array('title' => $title, 'url' => $url);
}
$objSmarty->assign('menu', $menu);

<< Prev
設定ファイルの利用
« INDEX »>
Page Top
Next >>
プログラムの作成

.