Usage (
{foreach:variable,key,value}
, {foreach:variable,value}
)
creates a foreach loop, needs an {end:} tag. note that the engine will add the variable to the scope, so they will not be prefixed with $t-> when used inside the loop.
string variable
-
relates to $object->variable
string key
-
creates a variable 'key' in the current scope.
string value
- optionally
creates a variable 'value' in the current scope. (as in $key=>$value)
Setting variables for foreach
$this->a = array( "dog" => "cat", "fire" => "water" ); $this->b = array('a','b','c'); $template->outputObject($this);
Foreach in template
{foreach:a,k,v} k is {k}, and v is {v} {end:} {foreach:b,v} v is {v} {end:}
Compiled template
<?php if (is_array($t->a)) foreach($t->a as $k => $v) { ?> k is <?php echo htmlspecialchars($k); ?>, and v is <?php echo htmlspecialchars($v); ?> <?php } ?> <?php if (is_array($t->a)) foreach($t->b as $v) { ?> v is <?php echo htmlspecialchars($v); ?> <?php } ?>
example output
k is dog, v is cat k is fire, v is water v is a v is b v is c