Twig

The flexible, fast, and secure
template engine for PHP

a Symfony Product
Docs Tags with
You are reading the documentation for Twig 3.x. Switch to the documentation for Twig 1.x, 2.x.

Questions & Feedback

License

Twig documentation is licensed under the new BSD license.

with

Use the with tag to create a new inner scope. Variables set within this scope are not visible outside of the scope:

1
2
3
4
5
{% with %}
    {% set value = 42 %}
    {{ value }} {# value is 42 here #}
{% endwith %}
value is not visible here any longer

Instead of defining variables at the beginning of the scope, you can pass a mapping of variables you want to define in the with tag; the previous example is equivalent to the following one:

1
2
3
4
5
6
7
8
9
10
{% with {value: 42} %}
    {{ value }} {# value is 42 here #}
{% endwith %}
value is not visible here any longer

{# it works with any expression that resolves to a mapping #}
{% set vars = {value: 42} %}
{% with vars %}
    ...
{% endwith %}

By default, the inner scope has access to the outer scope context; you can disable this behavior by appending the only keyword:

1
2
3
4
5
{% set zero = 0 %}
{% with {value: 42} only %}
    {# only value is defined #}
    {# zero is not defined #}
{% endwith %}