什么是 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>