fenom/docs/en/tags/for.md

41 lines
2.4 KiB
Markdown
Raw Permalink Normal View History

2013-02-07 20:04:00 +04:00
Tag {for}
=========
2013-02-08 00:46:14 +04:00
```smarty
{for $counter=<start> to=<end> [step=<step>] [index=$index] [first=$first] [last=$last]}
2013-02-07 20:04:00 +04:00
{* ...code... *}
{break}
{* ...code... *}
{continue}
{* ...code... *}
{forelse}
{* ...code... *}
{/for}
2013-02-08 00:46:14 +04:00
```
2013-02-07 20:04:00 +04:00
2013-02-11 00:41:42 +04:00
### {for}
2013-02-08 00:46:14 +04:00
Переменная `$counter` принимает значение <start> и увеличивает своё значение на <step> на каждой итерации цикла пока не достигнет или не станет больше <end>.
2013-02-07 20:04:00 +04:00
<step> является необязательным аргументом. Если не указан, считается равным единице.
2013-02-08 00:46:14 +04:00
`$index` имеет значение номера текущей итерации. Первая итерация имеет номер 0.
`$first` равно **TRUE**, если итерация первая.
`$last` равно **TRUE**, если итерация последняя.
2013-02-07 20:04:00 +04:00
2013-02-11 17:23:22 +04:00
Поля `<start>`, `<end>`, `<step>` могут быть числами, или переменными, значение которых приводится к числовому.
2013-02-08 00:46:14 +04:00
Значением параметров _index_, _first_, _last_ может быть только переменная (допускаются вложенности на подобии `$a.b.c`, но массив `$a.b` должен быть объявлен).
2013-02-07 20:04:00 +04:00
### {break}
Тег `{break}` используется для выхода из цикла до достижения последней итерации. Если в цикле встречается тег {break}, цикл завершает свою работу, и далее выполняется код, следующий сразу за блоком цикла
### {continue}
Тег `{continue}` используется для прерывания текущей итерации. Если в цикле встречается тег {continue}, часть цикла, следующая после тега, не выполняется, и начинается следующая итерация. Если текущая итерация была последней, цикл завершается.
### {forelse}
2013-02-11 00:41:42 +04:00
Тег `{forelse}` ограничивает код, который должен быть выполнен, если сочетание полей <start>, <end> и <step> не обеспечивают ни одной итерации.