Heim  >  Artikel  >  Backend-Entwicklung  >  ThinkPHP中foreach和volist的区别

ThinkPHP中foreach和volist的区别

巴扎黑
巴扎黑Original
2016-11-09 14:40:011168Durchsuche

1.foreach标签
foreach标签用于循环输出:
foreach(name,item,key)
name(必须):要输出的数据模板变量
item(必须):循环单原变量
key(可选):循环的key变量,默认值为key
示例:

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

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();
在模板定义如下,输出编号和姓名

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

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

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

输出偶数行记录:

 {$vo.name}

mod属性还用于控制一定记录的换行:

{$vo.name}



输出循环变量:

{$k}.{$vo.name}

如果没有指定key属性的话,默认使用循环变量i,例如:

{$i}.{$vo.name}

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

{$key}.{$vo.name}

volist还有一个别名iterate,用法和volist是一样。

从2.1版开始允许使用函数设定数据集,如:

{$vo.name}


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn