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();

在模板定义如下,输出编号和姓名

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

支持输出部分数据,例如输出其中的第5-15条记录:

<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,例如:

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

如果要输出数组的索引,可以直接使用key变量,和循环变量不同的是,这个key是由数据本身决定,而不是循环控制的,例如:

<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标签通常是用于输出数组。

转载于:https://my.oschina.net/u/2953372/blog/874137

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值