ifLa sentencia if en Twig es comparable con las sentencias if de PHP.
En su forma más simple, puedes usarla para probar si una expresión se evalúa como true:
{% if online == false %}
<p>Nuestro sitio web está en modo mantenimiento. Por favor, vuelva más tarde.</p>
{% endif %}
También puedes probar si una secuencia o un mapeo no está vacío:
{% if users %}
<ul>
{% for user in users %}
<li>{{ user.username|e }}</li>
{% endfor %}
</ul>
{% endif %}
Note
Si quieres probar si la variable está definida, usa if users is defined en su lugar.
También puedes usar not para comprobar valores que se evalúan como false:
{% if not user.subscribed %}
<p>No estás suscrito a nuestra lista de correo.</p>
{% endif %}
Para múltiples condiciones, se pueden usar and y or:
{% if temperature > 18 and temperature < 27 %}
<p>Es un buen día para un paseo por el parque.</p>
{% endif %}
Para múltiples ramas, se pueden usar elseif y else como en PHP. También puedes usar expressions más complejas allí:
{% if product.stock > 10 %}
Disponible
{% elseif product.stock > 0 %}
¡Solo quedan {{ product.stock }}!
{% else %}
¡Agotado!
{% endif %}
Note
Las reglas para determinar si una expresión es true o false son las mismas que en PHP; aquí están las reglas para casos límite:
| Valor | Evaluación booleana |
|---|---|
| cadena vacía | false |
| cero numérico | false |
| NAN (No es un Número) | true |
| INF (Infinito) | true |
| cadena solo con espacios en blanco | true |
| cadena "0" o '0' | false |
| secuencia vacía | false |
| mapeo vacío | false |
| null | false |
| secuencia no vacía | true |
| mapeo no vacío | true |
| objeto | true |