Attribute Name Type Required Default Description
name string No default The name of the cycle
values mixed Yes N/A The values to cycle through, either a comma delimited list (see delimiter attribute), or an array of values.
print boolean No true Whether to print the value or not
advance boolean No true Whether or not to advance to the next value
delimiter string No , The delimiter to use in the values attribute.
assign string No n/a the template variable the output will be assigned to

属性 类型 是否必须 缺省值 描述
name string No default 轮转的名称
values mixed Yes N/A 待轮转的值,可以是用逗号分隔的列表(请查看 delimiter 属性)或一个包含多值的数组.
print boolean No true 是否输出值
advance boolean No true 是否使用下一个值(为 false 时使用当前值)
delimiter string No , 指出values 属性中使用的分隔符,默认是逗号.
assign string No n/a 输出值将被赋给模板变量的名称

Cycle is used to cycle though a set of values. This makes it easy to alternate between two or more colors in a table, or cycle through an array of values.

Cycle 用于轮转使用一组值. 该特性使得在表格中交替输出颜色或轮转使用数组中的值变得很容易.

You can cycle through more than one set of values in your template by supplying a name attribute. Give each set of values a unique name.

如果需要在模板中使用多个轮转,需要给出唯一的 name 属性.

You can force the current value not to print with the print attribute set to false. This would be useful for silently skipping a value.

用户可以设置 print 属性为 false 强制不输出当前值. 该特性可以很方便地略过某个值.

The advance attribute is used to repeat a value. When set to false, the next call to cycle will print the same value.

advance 属性用于重复使用某个值. 当该属性设置为 false 时,下次调用该轮转时将输出同样的值.

If you supply the special "assign" attribute, the output of the cycle function will be assigned to this template variable instead of being output to the template.

如果指定了 "assign" 这个特殊属性,该轮转的输出值将被赋给由 assign 指定的模板变量,而不是直接输出.

Example 8-3. cycle
Smarty手册范例 8-3. cycle 函数演示

{section name=rows loop=$data}
<tr bgcolor="{cycle values="#eeeeee,#d0d0d0"}">


<tr bgcolor="#eeeeee">
<tr bgcolor="#d0d0d0">
<tr bgcolor="#eeeeee">