Smarty foreachの知識について、機能や使い方を詳しく解説します。
smarty {foreach} は、数値インデックス配列のような連想配列を反復処理するために使用されます。数値インデックス配列のみにアクセスできる {section} とは異なり、{foreach} の構文は {section} の構文よりもはるかに単純です。妥協して、単一のアレイでのみ動作することもあります。各 {foreach} タグは、終了タグ {/foreach} と組み合わせる必要があります。
smarty foreach には次の属性があります:
属性名 | タイプ | 必須必須 | デフォルトデフォルト値 | 説明 |
---|---|---|---|---|
から | 配列配列 | はい必要です | なし | ループによってアクセスされる配列 |
アイテム | 文字列 | はい必要です | なし | 現在の要素の変数名 |
キー | 文字列 | オプションなし | なし | 現在のキー名の変数名 |
名前 | 文字列 | オプションなし | なし | foreach プロパティへのアクセスに使用される foreach ループの名前 |
foreach は、セクション以外にループを処理するためのもう 1 つのソリューションです (さまざまなニーズに応じてさまざまなソリューションを選択してください)。
foreach は単純な配列を処理するために使用されます (配列内の要素は同じ型です)。欠点は、単純な配列しか処理できないことです。foreach は /foreach とペアで使用する必要があり、from 属性と item 属性を指定する必要があります。
name属性は任意に指定可能(文字、数字、アンダースコアの組み合わせ)
{foreach} ループの名前には、文字、配列、アンダースコアを任意に組み合わせて指定できます。PHP 変数を参照してください。
{foreach} ループはネストできます。ネストされた {foreach} の名前は互いに異なる必要があります。
from 属性は通常、値の配列であり、{foreach} のループ数を決定するために使用されます。
from変数に値がない場合は、{foreachelse}が実行されます。
{foreach} ループには、独自のプロパティを持つ変数もあり、{$smarty.foreach.name.property} を通じてアクセスできます。ここで、「name」は name プロパティです。
注: name 属性は、{section} とは異なり、{foreach} 属性にアクセスする場合にのみ有効です。未定義の名前の {foreach} 属性にアクセスしてもエラーはスローされませんが、予測できない結果が発生します。smarty {foreach} パラメーターである上記の属性に加えて、インデックス、反復、最初、最後、表示、合計、などの非パラメトリック属性がいくつかあります。
以下を 1 つずつ説明します。
説明 | |
---|---|
現在の foreach のインデックス値にアクセスするために使用され、インデックスは常に 0 から始まります | |
反復は、現在のループの実行数を表示するために使用されます。反復は常に 1 から始まり、実行ごとに 1 ずつ増加します |
|
現在の foreach ループが初めて実行されるとき、first は true に設定されます |
|
現在の foreach ループが最後のパスまで実行されると、 | last が true に設定されます
|
show | は foreach のパラメータで、値はブール値の true または false です。 false を指定すると、ループが foreachelse 句を指定している場合、その句が表示されるかどうかも値に依存します。の 値 を表示 |
total | は、ループの実行数を表示するために使用され、ループの実行中または実行後に呼び出すことができます
|
タイトル | |
{$i.label} | |
{if $smarty.foreach.foo.first}最新{else}{$myId}{/if} | {$i.label} |