File: with.rst

package info (click to toggle)
php-twig 3.20.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 5,940 kB
  • sloc: php: 23,320; makefile: 110; sh: 43
file content (41 lines) | stat: -rw-r--r-- 1,104 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
``with``
========

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

.. code-block:: twig

    {% 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:

.. code-block:: twig

    {% 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:

.. code-block:: twig

    {% set zero = 0 %}
    {% with {value: 42} only %}
        {# only value is defined #}
        {# zero is not defined #}
    {% endwith %}