Twig - 具有 3 个操作数的 "for" 语法,这是什么意思

Twig - "for" syntax with 3 operands, what does it mean

我发现了一段类似这样的遗留代码:

{% for key, name, values in tag %}
...
...
{% endfor %}

(这属于Twig 1,现在我们正在迁移到Twig 3。)

所以“for”是在每个循环中从“tag”中提取 3 个值?我在文档中的任何地方都没有看到这种构造。

这样可以吗?有人帮助我理解这一点并可以提供一些例子吗?

似乎第三个参数 values 在编译过程中被忽略了,对于 twig 1.Xtwig 3.X 都是如此。可以肯定地说,您可以省略 values 参数,因为它不会以任何方式影响 template/output

模板

{% for key, name, values in tag %}
{% endfor %}

twig 1.42.0 的编译源

$context['_seq'] = twig_ensure_traversable(($context["tag"] ?? $this->getContext($context, "tag")));
foreach ($context['_seq'] as $context["key"] => $context["name"]) {
}

twig 3.3.2 的编译源代码

$context['_seq'] = twig_ensure_traversable((isset($context["tag"]) || array_key_exists("tag", $context) ? $context["tag"] : (function () { throw new RuntimeError('Variable "tag" does not exist.', 1, $this->source); })()));
foreach ($context['_seq'] as $context["key"] => $context["name"]) {
}