Smarty マニュアル

前のページ

第 7章組み込み関数

次のページ

section,sectionelse

属性名型必須デフォルト概要

name

string

Yes

n/a

セクション名

loop

mixed

Yes

n/a

ループ回数を決定する値

start

integer

No

0

ループを開始するインデックス位置。この値が負の場合は、配列の最後尾から開始位置が算出されます。例えばループ配列に7つの値があり、そしてstartが-2であるならば、開始インデックスは5になります。ループ配列の長さを超えるような無効な値は、自動的に最も近い値に切り捨てられます。

step

integer

No

1

ループインデックスを進めるために使われるステップ値。例えばstep=2なら、インデックスは0, 2, 4をループします。stepの値が負の場合は、配列の前方に向かって進みます。

max

integer

No

n/a

セクションがループする最大の回数

show

boolean

No

true

このセクションを表示するかどうか

sectionは、データの配列をループするために使用されます。全てのsectionと/sectionはペアである必要があります。必須のパラメータは、nameとloopです。セクション名は英数字とアンダースコアを使って自由に命名できます。このタグはネスト可能で、その場合のセクション名はお互いにユニークである必要があります。loop属性で指定されたループ変数(たいていは配列)は、セクションのループ回数を決定するためにのみ使用されます。 セクション内で値を表示するには、変数名の次にブランケット[]で囲んだセクション名を指定します。ループ変数に値が存在しない場合は、sectionelseが実行されます。

例 7-15. section

{* $custid配列の値を全て表示 *}{section name=customer loop=$custid}id: {$custid[customer]}<br>{/section}出力:id: 1000<br>id: 1001<br>id: 1002<br>

例 7-16. section ループ変数

{* ループ変数は、ループ回数を決定するためにのみ使用されます。 セクション内ではあらゆるテンプレート変数にアクセス可能です。 この例では、$custid, $name, $addressのそれぞれの配列には同じ個数の値が格納されているとします。 *}{section name=customer loop=$custid}id: {$custid[customer]}<br>name: {$name[customer]}<br>address: {$address[customer]}<br><p>{/section}出力:id: 1000<br>name: John Smith<br>address: 253 N 45th<br><p>id: 1001<br>name: Jack Jones<br>address: 417 Mulberry ln<br><p>id: 1002<br>name: Jane Munson<br>address: 5605 apple st<br><p>

例 7-17. セクション名

{* セクション名は自由に命名可能で、セクション内で配列を参照するために使われます。 *}{section name=mydata loop=$custid}id: {$custid[mydata]}<br>name: {$name[mydata]}<br>address: {$address[mydata]}<br><p>{/section}

例 7-18. ネストしたセクション

続き…

ページ上段