`

ThinkPHP中foreach和volist的区别

    博客分类:
  • PHP
阅读更多

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>

分享到:
评论

相关推荐

    ThinkPHP之foreach标签使用概述

    ThinkPHP模板的foreach标签用于在模板中循环输出数据集或者对对象进行遍历输出。 相对于volist标签而言,foreach标签没有volist标签那么多的功能,却可以对对象进行遍历输出,而volist标签通常是用于输出数组。 ...

    ThinkPHP模板中判断volist循环的最后一条记录的验证方法

    虽然ThinkPHP的模板引擎提供了volist标签,但并没有像Smarty模板中的Smarty.foreach.name.last这样的直接属性来判断是否为循环的最后一条记录。不过,我们可以利用volist标签内置的变量和条件判断语句来实现这一功能...

    Thinkphp的volist标签嵌套循环使用教程

    系统内置的标签中,volist(及其别名iterate)、switch、if、elseif、else、foreach、compare(包括所有的比较标签)、(not)present、(not)empty、(not)defined等标签都可以嵌套使用。例如: &lt;volist name=...

    thinkphp学信心得

    `foreach`循环是处理数组的常用方式,而在视图中,`&lt;volist&gt;&lt;sublist&gt;&lt;/sublist&gt;&lt;/volist&gt;`用于遍历和展示数组内容。 8. **分页功能**:ThinkPHP提供了内置的分页工具`Page`类。首先,需要计算总条数,如`$count = ...

    thinkphp3.0完全中文开发手册

    CBD 架构强调了控制器的重要性,在 ThinkPHP 中,大部分逻辑处理都在控制器中完成。 **1.10 特性概述** - **自动加载**:ThinkPHP 3.0 支持自动加载机制,可以减少手动引入文件的工作。 - **自动验证**:提供了...

    Thinkphp中数据按分类嵌套循环实现方法

    在ThinkPHP框架中,实现数据按分类...掌握这些知识点对于在ThinkPHP框架中进行高级数据操作和模板渲染具有重要意义。希望本文所述内容能够帮助大家更好地理解和运用ThinkPHP框架,为开发出更强大的Web应用提供支持。

    ThinkPHP实战(夏磊)

    7.8.2foreach标签 1 7.8.3for标签 1 7.8.4switch标签 111 7.8.5比较标签 111 7.8.6empty标签 114 7.8.7defined标签 114 7.8.8标签嵌套 114 7.8.9import标签 115 7.8.使用原生PHP 115 7.8.11不解析输出 115 ...

    ThinkPHP模板中数组循环实例

    1. **Volist标签**:ThinkPHP中还提供了`volist`标签,它是`foreach`的增强版,提供了更多的属性,如`offset`、`length`、`as`等,方便进行分页或指定循环长度。 2. **变量输出**:除了`{$key}`和`{$vo}`,ThinkPHP...

    thinkPHP框架中执行原生SQL语句的方法

    本篇文章将深入探讨如何在ThinkPHP中执行原生SQL语句,并对比`query()`和`execute()`这两个方法的使用场景和差异。 首先,执行原生SQL语句的方法通常涉及创建一个模型对象。在ThinkPHP中,你可以通过以下方式实例化...

    thinkphp循环结构用法实例

    本篇文章将详细讲解ThinkPHP中三种主要的循环结构:for、volist和foreach,并通过实例来展示它们的用法。 1. **For循环** For循环是最基础的循环结构,适用于已知循环次数的情况。在ThinkPHP中,for循环的语法与...

    thinkphp标签实现bootsrtap轮播carousel实例代码

    需要注意的是,由于`foreach`和`for`循环无法在循环过程中获取索引,所以这里使用了ThinkPHP提供的`volist`标签。`volist`不仅提供了索引,还可以方便地处理数组、集合或其他数据结构,简化了模板中的逻辑。 在实际...

    Thinkphp5.0框架视图view的循环标签用法示例

    本篇文章将深入探讨ThinkPHP5.0框架视图view中的循环标签,包括`volist`、`foreach`和`for`标签的使用方法。 首先,我们来看`volist`标签,它是ThinkPHP5.0中的一个专有循环标签,主要用于遍历数组或集合。下面是一...

Global site tag (gtag.js) - Google Analytics