<!DOCTYPE html><html><head lang="en"><meta charset="UTF-8"><title></title><link rel="stylesheet" type="text/css" href="style.css"></head><body>
<div class="navheader">
<table width="100%" summary="Navigation header">
<tr><th colspan="3" align="center">{section},{sectionelse}</th></tr>
<tr>
<td width="20%" align="left">
<a href="language.function.php.tpl.html">Prev</a> </td>
<th width="60%" align="center">Chapter 7. 内置函数</th>
<td width="20%" align="right"> <a href="language.function.setfilter.tpl.html">Next</a>
</td>
</tr>
</table>
<hr>
</div>
<div class="sect1" title="{section},{sectionelse}">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="language.function.section"></a>{section},{sectionelse}</h2></div></div></div>
<p>
<code class="varname">{section}</code>可以循环遍历
<span class="bold"><strong>连续数字索引的数组</strong></span>,
区别于<a href="language.function.foreach.tpl.html">{foreach}</a>
可以循环<span class="bold"><strong>任意关联数组</strong></span>.
每个<code class="varname">{section}</code>标签都必须有一个匹配的<code class="varname">{/section}</code>关闭标签。
</p>
<div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Note</h3>
<p>
<a href="language.function.foreach.tpl.html">{foreach}</a>
可以做到任何{section}做到的功能, 而且更简单和有更清晰的语法。一般更推荐使用{foreach}语法.
</p>
</div>
<div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Note</h3>
<p>
{section}不能用于循环关联数组,它仅能循环数字索引的、连续下标的 (0,1,2,...)数组。
要循环关联数组,请使用<a href="language.function.foreach.tpl.html">{foreach}</a>。
</p>
</div>
<div class="informaltable"><table border="1">
<colgroup>
<col align="center">
<col align="center">
<col align="center">
<col align="center">
<col>
</colgroup>
<thead><tr>
<th align="center">参数名称</th>
<th align="center">类型</th>
<th align="center">必选参数</th>
<th align="center">默认值</th>
<th>说明</th>
</tr></thead>
<tbody>
<tr>
<td align="center">name</td>
<td align="center">string</td>
<td align="center">Yes</td>
<td align="center"><span class="emphasis"><em>n/a</em></span></td>
<td>section的名称</td>
</tr>
<tr>
<td align="center">loop</td>
<td align="center">mixed</td>
<td align="center">Yes</td>
<td align="center"><span class="emphasis"><em>n/a</em></span></td>
<td>用于循环的值</td>
</tr>
<tr>
<td align="center">start</td>
<td align="center">integer</td>
<td align="center">No</td>
<td align="center"><span class="emphasis"><em>0</em></span></td>
<td>
设置开始循环的下标。如果设置成负值,则会从数组的结束位置开始。
比如说,如果数组中有7个元素,设置该值为-2,则循环将从下标5开始。
设置了不正确的值(比如说在数组长度以外的值)那么会自动计算为最接近的值。
</td>
</tr>
<tr>
<td align="center">step</td>
<td align="center">integer</td>
<td align="center">No</td>
<td align="center"><span class="emphasis"><em>1</em></span></td>
<td>循环的步长值。比如,step=2将循环下标0,2,4,等。
如果step值设置成负数,那么将从最后开始计算步长。</td>
</tr>
<tr>
<td align="center">max</td>
<td align="center">integer</td>
<td align="center">No</td>
<td align="center"><span class="emphasis"><em>n/a</em></span></td>
<td>设置最大的循环次数。</td>
</tr>
<tr>
<td align="center">show</td>
<td align="center">boolean</td>
<td align="center">No</td>
<td align="center"><span class="emphasis"><em><code class="constant">TRUE</code></em></span></td>
<td>是否显示循环内容</td>
</tr>
</tbody>
</table></div>
<p><span class="bold"><strong>可选标记:</strong></span></p>
<div class="informaltable"><table border="1">
<colgroup>
<col align="center">
<col>
</colgroup>
<thead><tr>
<th align="center">名称</th>
<th>说明</th>
</tr></thead>
<tbody><tr>
<td align="center">nocache</td>
<td>关闭<code class="varname">{section}</code>缓存</td>
</tr></tbody>
</table></div>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem"><p>
<em class="parameter"><code>name</code></em> 和 <em class="parameter"><code>loop</code></em>是必须的参数。
</p></li>
<li class="listitem"><p>
<code class="varname">{section}</code>的<em class="parameter"><code>name</code></em>可以是任意字符,如数字、字母或下划线等,和
<a href="http://php.net/language.variables.html">PHP 变量</a>一样的命名规则。
</p></li>
<li class="listitem"><p>
{section}可以嵌套,而且嵌套的<code class="varname">{section}</code>名称必须唯一。
</p></li>
<li class="listitem"><p>
<em class="parameter"><code>loop</code></em>一般是数组,决定了<code class="varname">{section}</code>的循环次数。
同时你也可以传递一个整数指定循环次数。
</p></li>
<li class="listitem"><p>当在<code class="varname">{section}</code>内显示变量时,
<code class="varname">{section}</code> 的<em class="parameter"><code>name</code></em>必须给变量名称加上[方括号].
</p></li>
<li class="listitem"><p>
如果loop属性为空,<code class="varname">{sectionelse}</code>将执行。
</p></li>
<li class="listitem"><p>
<code class="varname">{section}</code>同时还有自己的属性。
这些属性都是通过: <a href="language.variables.smarty.tpl_language.variables.smarty.loops.html">
{$smarty.section.name.property}</a>来使用&