この記事では、PHP テンプレート エンジン Smarty 組み込み関数 foreach、foreachelse の使用方法について説明します。参考のために皆さんと共有してください。詳細は次のとおりです:
Smarty テンプレートでは、foreach を使用してブロックを繰り返すことができます。テンプレートでは、PHPから配列を割り当てる必要があります。この配列は多次元配列にすることができます。 Smarty の {foreach} タグは、一方がテンプレート ファイルで使用され、もう一方が PHP スクリプトで使用されることを除いて、PHP の foreach と同じです。したがって、構文は異なります。ただし、それらはすべて同じこと、つまり配列の内容を反復処理することを行います。 {foreach} タグの反対側に {foreachelse} タグもあります。{foreachelse} タグの機能は次のとおりです。配列が空の場合、タグ内のコンテンツが実行されます。 {foreach} と {/foreach} はテンプレート内でペアで指定する必要があります。これには 4 つのパラメータがあり、そのうち 2 つのパラメータ from と item が必要です。パラメータについては以下のリストを参照してください:
プロパティ | タイプ | 必要ですか | デフォルト値 | 説明 |
---|---|---|---|---|
から | 文字列 | はい | 該当なし | ループされる配列の名前 |
アイテム | 文字列 | はい | 該当なし | 現在処理されている要素の変数名 |
キー | 文字列 | いいえ | 該当なし |
現在処理されている要素のキー名 |
名前 | 文字列 | いいえ | 該当なし | ループへのアクセスに使用されるループの名前 |
アイデアの例: データベースからコンテンツを取得し、それを配列変数 $_html に割り当て、この配列変数をテンプレートに割り当て、テンプレート内の配列を走査します
test.sql (使用するSQLデータ)
リーリーinit.inc.php (テンプレート初期化ファイル)
リーリーindex.php (メインファイル)
リーリーtpl/index.tpl (メインファイルindex.phpのテンプレートファイル)
リーリー実行結果:
最後に要約すると、メインファイルindex.phpで渡される配列$_htmlは2次元配列です。予約変数 $smarty.foreach の使用は、{foreach} タグの name 属性に基づいています。使用される予約変数属性は次のとおりです: first (最初のレコード)、last (最後のレコード)、繰り返し (常に 1 から始まります)、各実行1 ずつ増加)、合計 (ループの実行数を表示するために使用)
さらに PHP 関連のコンテンツに興味のある読者は、このサイトの特別トピックをチェックしてください: 「Smarty テンプレートを使い始めるための基本チュートリアル」、「PHP テンプレート テクノロジの概要」、「PDO に基づく PHP データベース操作スキルの概要」 "、"PHP の操作とオペレーターの使用法の概要"、"PHP ネットワーク プログラミング スキルの概要"、"PHP 基本構文の入門チュートリアル"、"PHP オブジェクト指向プログラミングの入門チュートリアル"、"PHP 文字列の使用法の概要"、 『PHP+MySQLデータベース操作入門チュートリアル』と『PHPにおける一般的なデータベース操作スキルのまとめ』
この記事が、Smarty テンプレートに基づいた皆様の PHP プログラム設計に役立つことを願っています。