Twig

灵活、快速且安全的
PHP 模板引擎

a Symfony Product
您正在阅读 Twig 3.x 的文档。切换到 Twig 1.x, 2.x 的文档。

问题与反馈

许可

Twig 文档 在新的 BSD 许可下获得许可。

set

在代码块中,您还可以为变量赋值。赋值使用 set 标签,并且可以有多个目标。

以下是如何将 Fabien 值赋给 name 变量的方法

1
{% set name = 'Fabien' %}

set 调用之后,name 变量在模板中可用,就像任何其他变量一样

1
2
{# displays Fabien #}
{{ name }}

赋值可以是任何有效的 Twig 表达式

1
2
3
{% set numbers = [1, 2] %}
{% set user = {'name': 'Fabien'} %}
{% set name = 'Fabien' ~ ' ' ~ 'Potencier' %}

可以在一个块中分配多个变量

1
2
3
4
5
6
{% set first, last = 'Fabien', 'Potencier' %}

{# is equivalent to #}

{% set first = 'Fabien' %}
{% set last = 'Potencier' %}

set 标签也可以用于“捕获”文本块

1
2
3
4
5
{% set content %}
    <div id="pagination">
        ...
    </div>
{% endset %}

注意

如果您启用自动输出转义,Twig 将仅在捕获文本块时才认为内容是安全的。

注意

请注意,循环在 Twig 中是作用域限定的;因此,在 for 循环内声明的变量在循环外部不可访问

1
2
3
4
5
{% for item in items %}
    {% set value = item %}
{% endfor %}

{# value is NOT available #}

如果您想访问该变量,只需在循环之前声明它

1
2
3
4
5
6
{% set value = "" %}
{% for item in items %}
    {% set value = item %}
{% endfor %}

{# value is available #}