Twig 在定义变量时使用引号有什么区别吗?

Twig 在定义变量时使用引号有什么区别吗?,twig,Twig,细枝手册(“”)说: {% include 'foo' with {'foo': 'bar'} %} 但这也很好: {% include 'foo' with { foo: 'bar'} %} 那么,有什么区别吗?或者这些引语是任意的吗?之前@Maerlyn的回答并不完全准确 从Twig1.5开始,您可以使用无引号的字符串作为散列中的键名。例如,{foo:'bar'}与{foo':'bar'}相同,即使模板中有一个名为foo的变量,它也不会与foo的哈希键名称冲突。这只是一件方便的事,仅此而

细枝手册(“”)说:

{% include 'foo' with {'foo': 'bar'} %}
但这也很好:

{% include 'foo' with { foo: 'bar'} %}

那么,有什么区别吗?或者这些引语是任意的吗?

之前@Maerlyn的回答并不完全准确

从Twig1.5开始,您可以使用无引号的字符串作为散列中的键名。例如,
{foo:'bar'}
{foo':'bar'}
相同,即使模板中有一个名为
foo
的变量,它也不会与
foo
的哈希键名称冲突。这只是一件方便的事,仅此而已

例如:

{% set foo = 'bar' %}
{% set bar = {foo: foo} %} {# note: no quotes around foo #}
{% debug bar %}
array
  'foo' => string 'bar' (length=3)
预期输出:

{% set foo = 'bar' %}
{% set bar = {foo: foo} %} {# note: no quotes around foo #}
{% debug bar %}
array
  'foo' => string 'bar' (length=3)

@Maerlyn之前的回答并不完全准确

从Twig1.5开始,您可以使用无引号的字符串作为散列中的键名。例如,
{foo:'bar'}
{foo':'bar'}
相同,即使模板中有一个名为
foo
的变量,它也不会与
foo
的哈希键名称冲突。这只是一件方便的事,仅此而已

例如:

{% set foo = 'bar' %}
{% set bar = {foo: foo} %} {# note: no quotes around foo #}
{% debug bar %}
array
  'foo' => string 'bar' (length=3)
预期输出:

{% set foo = 'bar' %}
{% set bar = {foo: foo} %} {# note: no quotes around foo #}
{% debug bar %}
array
  'foo' => string 'bar' (length=3)

如果你在文档中看到某些事情是以某种方式完成的,那么很可能需要正确的语法,你不应该偏离该语法。如果你在文档中看到某些事情是以某种方式完成的,那么很可能需要正确的语法,你不应该偏离该语法。啊,就像我一开始想的那样,这根本没什么区别。谢谢。啊,就像我一开始想的那样,这根本没什么区别。谢谢