Smartyのループ処理

Smartyの便利な機能の一つがループ処理だ。PHPのforeachがあるが、Smartyにも実装されている。

曜日を列挙するプログラムで、簡単なforeachを紹介しようと思う。
まずPHPは、

<?php
$data = array( ‘日’, ‘月’, ‘火’, ‘水’, ‘木’, ‘金’, ‘土’ );
$smarty = new MySmarty();
$smarty->assign( ‘week_array’, $data );
$smarty->display( ‘smarty_test_week.tpl ‘ );
?>

次にテンプレートは

<html>
<head>
<title>Smartyのforeachテスト</title>
</head>
<body>
{foreach from=$week_array item=node}
{$node}&nbsp;&nbsp;
{/foreach}
</head>
</html>

となる。

{foreach xxxx}から{/foreach}の間を配列分繰り返し、表示することになるのが分かるだろう。
foreachの引数などの詳しい情報はマニュアルを直接見るほうがよいだろう

PHPソースの$smarty->assign( ‘week_array’, $data )では、
PHP上の$data変数をsmarty上の変数$week_arrayとしてSmartyに代入している。

PHPからSmartyへデータを渡す場合、このassign関数を用いてデータを渡す。

Smarty無いでは{$変数名}とすることで、格納されいている変数を表示することが出来る。

foreachは再帰的に記述することも出来る。