Twig

The flexible, fast, and secure
template engine for PHP

a Symfony Product
Docs Tags if
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.

if

The if statement in Twig is comparable with the if statements of PHP.

In the simplest form you can use it to test if an expression evaluates to true:

1
2
3
{% if online == false %}
    <p>Our website is in maintenance mode. Please, come back later.</p>
{% endif %}

You can also test if a sequence or a mapping is not empty:

1
2
3
4
5
6
7
{% if users %}
    <ul>
        {% for user in users %}
            <li>{{ user.username|e }}</li>
        {% endfor %}
    </ul>
{% endif %}

Note

If you want to test if the variable is defined, use if users is defined instead.

You can also use not to check for values that evaluate to false:

1
2
3
{% if not user.subscribed %}
    <p>You are not subscribed to our mailing list.</p>
{% endif %}

For multiple conditions, and and or can be used:

1
2
3
{% if temperature > 18 and temperature < 27 %}
    <p>It's a nice day for a walk in the park.</p>
{% endif %}

For multiple branches elseif and else can be used like in PHP. You can use more complex expressions there too:

1
2
3
4
5
6
7
{% if product.stock > 10 %}
   Available
{% elseif product.stock > 0 %}
   Only {{ product.stock }} left!
{% else %}
   Sold-out!
{% endif %}

Note

The rules to determine if an expression is true or false are the same as in PHP; here are the edge cases rules:

Value Boolean evaluation
empty string false
numeric zero false
NAN (Not A Number) true
INF (Infinity) true
whitespace-only string true
string "0" or '0' false
empty sequence false
empty mapping false
null false
non-empty sequence true
non-empty mapping true
object true