在 Twig 中,我可以通过 2 种方式进行设置
{% set car = 'Honda' %}
或者
{% set car %}Honda{%endset%}
第二种方式是“捕获”
当我尝试将变量用作数组中的索引时,例如,
{{ cars[car].wheels | length }}
设置变量的第二种方法不起作用。为什么?
在 Twig 中打开调试模式。使用调试扩展查看 2 个场景中的变量。
第一种方式
{% set car = 'Honda' %}
{% debug car %}
会告诉你那辆车还是一串本田
然而,第二种方式
{% set car %}Honda{%endset%}
{% debug car %}
会告诉你这辆车现在是
Twig_Markup 对象( [content:protected] => car )
因此,如果要将变量用作数组中的键或索引,请不要使用捕获作为设置变量的方法。
更新:对于大于 1.5 的 Twig 版本,使用转储替换调试
例如:
{% set car = 'Honda' %}
{% debug car %}
例如:
{% set car %}Honda{%endset%}
{% debug car %}
您也可以像这样使用第二种方式(您应该修剪汽车变量):
{% set car %}Honda{%endset%}
{{ cars[car|trim].wheels | length }}