a Sensio Labs Product

The flexible, fast, and secure
template engine for PHP

Tags » set

Questions & Feedback

License

Twig documentation is licensed under the new BSD license.

setΒΆ

Inside code blocks you can also assign values to variables. Assignments use the set tag and can have multiple targets.

Here is how you can assign the bar value to the foo variable:

1
{% set foo = 'bar' %}

After the set call, the foo variable is available in the template like any other ones:

1
2
{# displays bar #}
{{ foo }}

The assigned value can be any valid Twig expressions:

1
2
3
{% set foo = [1, 2] %}
{% set foo = {'foo': 'bar'} %}
{% set foo = 'foo' ~ 'bar' %}

Several variables can be assigned in one block:

1
2
3
4
5
6
{% set foo, bar = 'foo', 'bar' %}

{# is equivalent to #}

{% set foo = 'foo' %}
{% set bar = 'bar' %}

The set tag can also be used to 'capture' chunks of text:

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

Caution

If you enable automatic output escaping, Twig will only consider the content to be safe when capturing chunks of text.

Note

Note that loops are scoped in Twig; therefore a variable declared inside a for loop is not accessible outside the loop itself:

1
2
3
4
5
{% for item in list %}
    {% set foo = item %}
{% endfor %}

{# foo is NOT available #}

If you want to access the variable, just declare it before the loop:

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

{# foo is available #}
This website is powered by PHP and Twig. The Twig logo is © 2010-2012 Sensio Labs