44 lines
2.4 KiB
Markdown
44 lines
2.4 KiB
Markdown
{while} {#language.function.while}
|
|
=======
|
|
|
|
`{while}` loops in Smarty have much the same flexibility as PHP
|
|
[while](&url.php-manual;while) statements, with a few added features for
|
|
the template engine. Every `{while}` must be paired with a matching
|
|
`{/while}`. All PHP conditionals and functions are recognized, such as
|
|
*\|\|*, *or*, *&&*, *and*, *is\_array()*, etc.
|
|
|
|
The following is a list of recognized qualifiers, which must be
|
|
separated from surrounding elements by spaces. Note that items listed in
|
|
\[brackets\] are optional. PHP equivalents are shown where applicable.
|
|
|
|
Qualifier Alternates Syntax Example Meaning PHP Equivalent
|
|
-------------------- ------------ ------------------------ -------------------------------- ----------------------
|
|
== eq \$a eq \$b equals ==
|
|
!= ne, neq \$a neq \$b not equals !=
|
|
\> gt \$a gt \$b greater than \>
|
|
\< lt \$a lt \$b less than \<
|
|
\>= gte, ge \$a ge \$b greater than or equal \>=
|
|
\<= lte, le \$a le \$b less than or equal \<=
|
|
=== \$a === 0 check for identity ===
|
|
! not not \$a negation (unary) !
|
|
\% mod \$a mod \$b modulous \%
|
|
is \[not\] div by \$a is not div by 4 divisible by \$a % \$b == 0
|
|
is \[not\] even \$a is not even \[not\] an even number (unary) \$a % 2 == 0
|
|
is \[not\] even by \$a is not even by \$b grouping level \[not\] even (\$a / \$b) % 2 == 0
|
|
is \[not\] odd \$a is not odd \[not\] an odd number (unary) \$a % 2 != 0
|
|
is \[not\] odd by \$a is not odd by \$b \[not\] an odd grouping (\$a / \$b) % 2 != 0
|
|
|
|
|
|
|
|
{while $foo > 0}
|
|
{$foo--}
|
|
{/while}
|
|
|
|
|
|
|
|
The above example will count down the value of \$foo until 1 is reached.
|
|
|
|
See also [`{foreach}`](#language.function.foreach),
|
|
[`{for}`](#language.function.for) and
|
|
[`{section}`](#language.function.section).
|