mirror of
https://github.com/twigphp/Twig.git
synced 2026-09-14 19:36:43 +00:00
made small optimizations to for loops
git-svn-id: http://svn.twig-project.org/trunk@116 93ef8e89-cb99-4229-a87c-7fa0fa45744b
This commit is contained in:
@@ -78,27 +78,29 @@ function twig_iterate(&$context, $seq)
|
||||
|
||||
function twig_set_loop_context(&$context, $iterator, $target)
|
||||
{
|
||||
$idx = $iterator->idx;
|
||||
|
||||
if (is_array($target))
|
||||
{
|
||||
foreach (array_combine($target, $iterator->seq[$iterator->idx]) as $key => $value)
|
||||
foreach ($target as $key => $value)
|
||||
{
|
||||
$context[$key] = $value;
|
||||
$context[$value] = $iterator->seq[$idx][$key];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$context[$target] = $iterator->seq[$iterator->idx];
|
||||
$context[$target] = $iterator->seq[$idx];
|
||||
}
|
||||
|
||||
$context['loop'] = array(
|
||||
'parent' => $iterator->parent,
|
||||
'length' => $iterator->length,
|
||||
'index0' => $iterator->idx,
|
||||
'index' => $iterator->idx + 1,
|
||||
'revindex0' => $iterator->length - $iterator->idx - 1,
|
||||
'revindex' => $iterator->length - $iterator->idx,
|
||||
'first' => $iterator->idx == 0,
|
||||
'last' => $iterator->idx + 1 == $iterator->length,
|
||||
'index0' => $idx,
|
||||
'index' => $idx + 1,
|
||||
'revindex0' => $iterator->length - $idx - 1,
|
||||
'revindex' => $iterator->length - $idx,
|
||||
'first' => $idx == 0,
|
||||
'last' => $idx + 1 == $iterator->length,
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user