thinkphp中volist 和foreach 的區別

1.volist

volist標籤主要用於在模板中循環輸出數據集或者多維數組數組

volist(name,id,offset,length,key,mod,empty)

name(必須):要輸出的數據模型變量
id(必須):循環變量
offset(可選):要輸出數據的offset
length(可選):輸出數據的長度
key(可選):循環的key變量,默認值爲i
mod(可選):對key值取模,默認爲2(用於偶數行查詢等)
empty(可選):若是數據爲空顯示的字符串
一般模型的select方法返回的結果是一個二維數組,能夠直接使用volist標籤進行輸出。
在Action中首先對模板賦值:函數

$user=M('User');  
$list=$user->select();  
$this->assign('list',$list);
$this->display();

在模板定義以下,輸出編號和姓名this

<volist name='list' id='vo'>
 {$vo.id}
 {$vo.name}
</volist>

支持輸出部分數據,例如輸出其中的第5-15條記錄:code

<volist name='list' id='vo' offset='5' length='10'>
 {$vo.id}
 {$vo.name}
</volist>

輸出偶數行記錄:對象

<volist name='list' id='vo' mod='2'>
 <eq name="mod" value='1'>{$vo.name}</eq>
</volist>

mod屬性還用於控制必定記錄的換行:索引

<volist name='list' id='vo' mod='5'>
{$vo.name}
<eq name="mod" value='4'><br/></eq>
</volist>

輸出循環變量:字符串

<volist name='list' id='vo' key='k'>
{$k}.{$vo.name}
</volist>

若是沒有指定key屬性的話,默認使用循環變量i,例如:it

<volist name="list" id="vo"  >
{$i}.{$vo.name}
</volist>

若是要輸出數組的索引,能夠直接使用key變量,和循環變量不一樣的是,這個key是由數據自己決定,而不是循環控制的,例如:io

<volist name="list" id="vo"  >
{$key}.{$vo.name}
</volist>

volist還有一個別名iterate,用法和volist是同樣。 從2.1版開始容許使用函數設定數據集,如:模板

<volist name=":fun('arg')" id="vo">{$vo.name}</volist>

##2. foreach標籤 foreach標籤用於循環輸出: foreach(name,item,key) name(必須):要輸出的數據模板變量 item(必須):循環單原變量 key(可選):循環的key變量,默認值爲key 示例:

<foreach name='list' item='vo'>
 {$vo.id}
 {$vo.name}
</foreach>

能夠輸出索引,以下:

<foreach name="list" item="vo" >
    {$key}|{$vo.id}:{$vo.name}
</foreach>

也能夠定義索引的變量名

<foreach name="list" item="vo" key="k" >
  {$k}|{$vo.id}:{$vo.name}
</foreach>

foreach標籤相對於volist標籤簡潔,沒有volist標籤那麼多功能。優點是能夠對對象進行遍歷輸出,而volist標籤一般是用於輸出數組。

相關文章
相關標籤/搜索