ホームページ  >  記事  >  バックエンド開発  >  Smarty foreach_PHP チュートリアルの詳細な説明

Smarty foreach_PHP チュートリアルの詳細な説明

WBOY
WBOYオリジナル
2016-07-13 09:58:451368ブラウズ

smarty foreachの詳細説明

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 つずつ説明します。

属性名インデックス反復反復は、現在のループの実行数を表示するために使用されます。反復は常に 1 から始まり、実行ごとに 1 ずつ増加します最初に最後lastショーshow合計total

smarty foreach の各属性の使用法を説明するために、いくつかの例を見てみましょう:

(1) アイテムと主要な属性をデモンストレーションします

$arr = array(9 => 'テニス', 3 => '水泳', 8 => 'コーディング');
$smarty->assign('myArray', $arr);
?>

PHP の foreach と同様に、テンプレート キー名とキー値のペアを使用して $myArray を出力します。


    {foreach from=$myArray key=k item=v}
  • {$k}: {$v}

  • {/foreach}

上記の例では次のように出力されます:

  • 9: テニス

  • 3: 水泳

  • 8: コーディング


(2) foreachのitem属性が連想配列の場合

$items_list = 配列(
23 => 配列('いいえ' => 2456, 'ラベル' => 'サラダ'),
96 => 配列('いいえ' => 4889, 'ラベル' => 'クリーム')
);
$smarty->assign('items', $items_list);
?>

テンプレートでは、URL は $myId を通じて $items を出力します

上記の例では次のように出力されます:



(3) foreach はネストされた項目とキーを使用します

各キー名に対応する各ループ値のキーを含む配列を Smarty に設定します。

$smarty->assign('連絡先', array(

array('電話' => '1',
'ファックス' => '2',
'セル' => '3')、
; array('電話' => '555-4444',
'ファックス' => '555-3333',
'セル' => '760-1234')
                                                                                                                                                                        ?>

$contactを出力するためのテンプレート。

{foreach name=outer item=contact from=$contacts}


{foreach key=key item=item from=$contact}

{$key}: {$item}

{/foreach}
{/foreach}

上記の例では次のように出力されます:



電話: 1>
ファックス: 2

セル: 3>


電話: 555-4444

ファックス: 555-3333

携帯電話: 760-1234


(4) スマートな foreach インデックス属性の使用法


{* 5 行ごとにヘッダー ブロックを出力 *} {foreach from=$items key=myId item=i name=foo}

{if $smarty.foreach.foo.index % 5 == 0}


{/if}

{/foreach}

(5)賢いforeach反復属性の使い方

{* この例では、0|1、1|2、2|3、... などが出力されます。 *}
{foreach from=$myArray item=i name=foo}
{$smarty.foreach.foo.index}|{$smarty.foreach.foo.iteration},
{/foreach}

(6) foreach の最初の属性のスマートな使用法

{* 最初のエントリには ID * の代わりに LATEST が表示されます}

{foreach from=$items key=myId item=i name=foo}





{/foreach}

(7)smarty foreach最後の属性の使用法

{* リストの最後に横マークを追加します *})
{foreach from=$items key=part_id item=prod name=products}
{$prod}{if $smarty.foreach.products.last}


{else }、{/if}
{foreachelse}
...内容...
{/foreach}

(8) スマート foreach 表示属性の使用法

show は {foreach} のパラメータです。show はブール値です。値が FALSE の場合、{foreach} は表示されません。対応する {foreachelse} があればそれが表示されます。

(9) スマート foreach 属性の合計使用量

{* 終了位置に行番号を表示 *}
{foreach from=$items key=part_id item=prod name=foo}
{$prod.name>



{if $smarty.foreach.foo.last}
{$smarty.foreach.foo.total} アイテム

{/if}
{foreachelse}
...何か別のもの...
{/foreach}

OK、smarty foreach については以上です。smarty の詳細については、次のサイトを参照してください:smarty 知識トピック

興味のある記事

  • array_walk と foreach、for、PHP パフォーマンスの最適化の効率の比較
  • in_array() foreach array_search()を使って配列が含まれているかどうかを調べる場合のパフォーマンス比較について
  • smartyテンプレートのforループ用拡張プラグイン
  • smartyインクルードファイル変数を使って特定の配列が含まれているかどうかを調べる方法
  • php値は配列内にあります Exist (in_array()、array_search()、array_key_exists()) select into select
  • エラー「クラス 'ZipArchive' が見つかりません...」に対する致命的な解決策...
http://www.bkjia.com/PHPjc/976850.html

www.bkjia.com

http://www.bkjia.com/PHPjc/976850.html技術記事 Smarty foreach の詳細情報 Smarty foreach の機能と使い方を詳しく説明します。 Smarty {foreach} は、数値インデックス付き配列を反復処理するように使用されます...
説明
現在の foreach のインデックス値にアクセスするために使用され、インデックスは常に 0 から始まります

現在の foreach ループが初めて実行されるとき、first は true に設定されます
現在の foreach ループが最後のパスまで実行されると、 が true に設定されます
は foreach のパラメータで、値はブール値の true または false です。 false を指定すると、ループが foreachelse 句を指定している場合、その句が表示されるかどうかも値に依存します。の を表示
は、ループの実行数を表示するために使用され、ループの実行中または実行後に呼び出すことができます
タイトル
{$i.label}
{if $smarty.foreach.foo.first}最新{else}{$myId}{/if}{$i.label}
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。