ホームページ >バックエンド開発 >PHPチュートリアル >ThinkPHP の foreach と volist の違い

ThinkPHP の foreach と volist の違い

巴扎黑
巴扎黑オリジナル
2016-11-09 14:40:011279ブラウズ

1.foreach タグ
foreach タグはループ出力に使用されます:
foreach(name, item, key)
name (必須): 出力されるデータ テンプレート変数
item (必須): ループの単一の元の変数
key (オプション) ): ループのキー変数、デフォルト値は key です
例:

{$vo.id}
{$vo.name}

foreach タグは volist タグよりも単純であり、 volist タグとして多くの機能があります。利点は、オブジェクトを走査して出力できることです。通常、配列の出力には volist タグが使用されます。

2.volist タグ
volist タグは主に、テンプレート内のデータセットまたは多次元配列の出力をループするために使用されます
volist(name, id, offset, length, key, mod, empty)
name (必須):出力されるデータモデル 変数
id (必須): ループ変数
offset (オプション): 出力されるデータのオフセット
length (オプション): 出力データの長さ
key (オプション): ループのキー変数、デフォルト値は i
mod (オプション): キー値のモジュロ、デフォルトは 2 (偶数行クエリなどの場合)
empty (オプション): データが空の場合に表示される文字列

通常、モデルの select メソッドによって返される結果は 2 次元配列です。volist タグを使用して直接出力できます。
まずアクションでテンプレートに値を割り当てます:
$user=M('User');
$list=$user->select();
$this->assign('list',$list);
$this ->display();
テンプレートは次のように定義されており、番号と名前を出力します

{$vo.id}
{$vo.name}

は、5番目の出力など、部分的なデータの出力をサポートしています。 15 番目のレコード:

{$vo.id}
{$vo.name}

偶数行のレコードを出力:

{$vo.name}

mod 属性は次の目的にも使用されます。特定のレコードの行折り返しを制御します:

{$vo.name}



出力ループ変数:

{$k}.{$vo.name}

key 属性が指定しない場合、デフォルトでループ変数 i が使用されます。例:

{$i}.{$vo.name}

配列のインデックスを出力したい場合は、次のように使用できます。ループ変数とは異なり、キーはループ制御ではなくデータ自体によって決定されます。たとえば、

{$key}.{$vo.name}

volist も同様です。エイリアス iterate があり、その使用法は volist と同じです。

バージョン 2.1 以降、次のような関数を使用してデータセットを設定できるようになりました:

{$vo.name}


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。