• ThinkPHP中foreach和volist的区别


    1.foreach标签
    foreach标签用于循环输出:
    foreach(name,item,key)
    name(必须):要输出的数据模板变量
    item(必须):循环单原变量
    key(可选):循环的key变量,默认值为key
    示例:
    <foreach name='list' item='vo'>
    {$vo.id}
    {$vo.name}
    </foreach>
    foreach标签相对于volist标签简洁,没有volist标签那么多功能。优势是可以对对象进行遍历输出,而volist标签通常是用于输出数组。
    2.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>

  • 相关阅读:
    POJ3690:Constellations——题解
    BZOJ1857:[SCOI2010]传送带——题解
    CF578C:Weakness and Poorness——题解
    程序员教我的那些事
    程序员教我的那些事
    手把手教你利用Jenkins持续集成iOS项目
    手把手教你利用Jenkins持续集成iOS项目
    手把手教你利用Jenkins持续集成iOS项目
    华为招聘-​分布式并行计算解决方案测试工程师
    华为招聘-​分布式并行计算解决方案测试工程师
  • 原文地址:https://www.cnblogs.com/andy9468/p/4210884.html
Copyright © 2020-2023  润新知