(1)section、sectionelse
功能多,参数多。或许不是太实用。是smarty用来做循环操作的函数之一。
(2)了解基本属性name和loop
<section name=article loop=$articlelist>
{$articlelist[article].title}
{$articlelist[article].author}
{$articlelist[article].content}
</section>
section其他的属性:
(1)start 循环执行的初始位置。如果该值为负数,开始位置从数组的尾部算起。例如:
如果数组中有7个元素,指定start为-2,那么指向当前数组的索引为5.非法值(超过了循环数组的下限)将被自动调整为最接近的合法值。
(2)step 该值决定循环的步长。例如指定step=2将只遍历下标为0、2、4等的元素。如果step为负值,那么遍历数组的时候从后向前遍历。
(3)设定循环最大执行次数。
(4)show 决定是否显示该循环。
{section name=article loop=$articlelist max=1}
{/section}
{section name=[循环变量] loop=[需要遍历的变量] }{/section}
{foreach item=[循环变量] from=[遍历的变量]}{foreachelse}[没有数据遍历时候处理的程序]{/foreach}
{foreach $articlelist as $article}//{foreach item=article from =$articlelist}
{$article.title}
{$article.author}
{$article.content}
<br/>
{foreachelse}
{*当数据为空时执行*}
当前没有文章
{/foreach}
区别:foreach用于处理数组中元素的类型一致,格式比section简单,与PHP语法接近,容易掌握,错误率低。缺点:只能处理简单数组