什么是 Smarty?
为什么使用它?
使用案例和工作流程
语法比较
模板继承
最佳实践
速成课程
{cycle} 用于交替使用一组值。这样可以轻松地实现例如在表格中交替使用两种或更多种颜色,或循环使用一个值数组。
| 属性名称 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| name | 字符串 | 否 | default | 循环的名称 |
| values | 混合 | 是 | 不适用 | 循环使用的一组值,可以是逗号分隔的列表(见分隔符属性),也可以是值数组 |
| 布尔值 | 否 | TRUE |
是否打印该值 | |
| advance | 布尔值 | 否 | TRUE |
是否前进到下一个值 |
| delimiter | 字符串 | 否 | , | values 属性中使用的分隔符 |
| assign | 字符串 | 否 | 不适用 | 用于将输出分配到的模板变量 |
| reset | 布尔值 | 否 | FALSE |
循环将设置为第一个值并且不前进 |
可以通过提供 name 属性在模板中循环使用多个值集。为每个 {cycle} 提供一个唯一的 name。
可以使用 print 属性设置为 FALSE 来强制不过当前值。这对于静默跳过一个值十分有用。
advance 参数用于重复一个值。当设置为 FALSE 时,下一个对 {cycle} 的调用将打印相同的值。
如果提供了 assign 属性,{cycle} 函数的输出将分配给模板变量,而不是输出到模板。
示例 8.2。{cycle}
{section name=rows loop=$data}
<tr class="{cycle values="odd,even"}">
<td>{$data[rows]}</td>
</tr>
{/section}
上面的模板将输出
<tr class="odd"> <td>1</td> </tr> <tr class="even"> <td>2</td> </tr> <tr class="odd"> <td>3</td> </tr>