前の記事 ≪:Smarty徹底入門(11):テンプレート内で繰り返し(1)
次の記事 ≫:RSS作成スクリプトでRSS配信を始めました。

Smarty徹底入門(12):テンプレート内で繰り返し(2)

2005年04月24日-はてなブックマーク

スポンサード リンク
[PR] 英単語を忘却曲線アプリを使って超効率よく記憶する方法

繰り返しにはforeach以外にもう一つあります。

それは、section です。

{section name="test" loop=$data}
{$smarty.section.test.iteration}:{$data[test]}

{sectionelse}
データがありません
{/section}

これはphp構文で言うfor文に近いものです。

name にはループ名として自由に指定して、loop ではループさせたいデータを指定するだけです。

{$smarty.section.test.iteration}でインデックス番号($iみたいな添え字)が取れます。

{$data[test]} によって、ループ中の要素が取れます。
ちょっと変わった記法ですね。

更に、section に、
{section name="test" loop=$data start="0" step="2" max="5"}

のように start, step, max を指定することで より for 文チックに細かくループさせることが出来ます。

start は 開始のインデックスの値で、step は1ループごとにインデックスをいくら増分させるかを指定し、max によって最大何回ループさせるかを指定します。
このmax に関しては"最大何回" の指定なので、若干 for の条件指定とは変わってきます。

こちらも便利ですね。

スポンサード リンク

By.KJ : 2005年04月24日 12:52 livedoor Readerで購読 Twitterに投稿

間違いの指摘をしていただける方はメール、あるいはTwitter/FBでお願いします(クリック)