この記事では、PHP テンプレート エンジン Smarty の組み込み関数 foreach と foreachelse の使い方を主に紹介し、foreach と foreachelse の機能と具体的な使用テクニックをサンプル形式で分析します。 Smarty テンプレートでは、foreach を使用してブロックを繰り返すことができます。テンプレートでは、PHPから配列を割り当てる必要があります。この配列は多次元配列にすることができます。 Smarty の {foreach} タグは、一方がテンプレート ファイルで使用され、もう一方が PHP スクリプトで使用されることを除いて、PHP の foreach と同じです。したがって、構文は異なります。ただし、それらはすべて同じこと、つまり配列の内容を反復処理することを行います。 {foreach} タグの反対側に {foreachelse} タグもあります。{foreachelse} タグの機能は次のとおりです。配列が空の場合、タグ内のコンテンツが実行されます。 {foreach} と {/foreach} はテンプレート内でペアで指定する必要があります。これには 4 つのパラメータがあり、そのうち 2 つのパラメータ from と item が必要です。パラメータについては、次のリストを参照してください:
タイプ | 必須かどうか | デフォルト値 | 説明 | |
---|---|---|---|---|
文字列 | はい | n/aループされる配列の名前 | ||
string | Yes | n/a現在処理されている要素の変数名 | ||
string | いいえこのループの名前 (for ループにアクセスします) | 例を使用して、Smarty での {foreach} と {foreachelse} の使用を示します。 アイデアの例: データベースからコンテンツを取得し、配列変数 $_html に割り当て、この配列変数をテンプレートに割り当て、テンプレート内の配列を走査します | test.sql (SQL データを使用)
| |
init.inc.php (テンプレート初期化ファイル) | index.php (メインファイル) <?php require 'init.inc.php'; //引入模板初始化文件 global $_tpl; $_mysqli = new mysqli(); //创建一个 mysqli() 对象 $_mysqli->connect('localhost','root','数据库密码','数据库名'); //连接数据库,请您自行设置 $_mysqli->set_charset('utf8'); //设置编码 $_result = $_mysqli->query("select username,email,addTime from user order by id asc"); $_html = array(); while (!!$_row=$_result->fetch_assoc()) { $_html[] = $_row; } $_tpl->assign('data',$_html); //把数组分配到模板中 $_tpl->display('index.tpl'); //引入模板 $_mysqli->close(); //关闭数据库,释放资源 ?> |
tpl/index.tpl (メインファイルindex.phpファイルのテンプレート) |
実行結果:
array_unshift()を使用した配列キーの変更に関するメモと分析例
php
HTML形式をテキスト形式に変換する方法 phpcurlメソッドを使用するプロキシ経由でのデータ取得
以上がPHP テンプレート エンジン Smarty 組み込み関数 foreach、foreachelse の使用法と分析例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。