Twig

The flexible, fast, and secure
template engine for PHP

a Symfony Product
Docs Tags with
You are reading the documentation for Twig 2.x. Switch to the documentation for Twig 1.x. 3.x.
Warning Twig version 2.x end of maintenance is scheduled for December 2023.

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 foo = 42 %}
    {{ foo }} {# foo is 42 here #}
{% endwith %}
foo is not visible here any longer

Instead of defining variables at the beginning of the scope, you can pass a hash 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 { foo: 42 } %}
    {{ foo }} {# foo is 42 here #}
{% endwith %}
foo is not visible here any longer

{# it works with any expression that resolves to a hash #}
{% set vars = { foo: 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 bar = 'bar' %}
{% with { foo: 42 } only %}
    {# only foo is defined #}
    {# bar is not defined #}
{% endwith %}
Website powered by Symfony and Twig, deployed on
The Twig logo is © 2010-2024 Symfony