Aquí está el código PHP:
if ($var===0) {do something} "Hace algo" solo cuando $var es realmente 0 (y si $var no está configurado, no funciona, por lo que todo está bien).
Sin embargo, Twig no admite el operador ===, y si escribo:
{% if var==0 %}do something{% endif %} "hace algo" todo el tiempo (incluso cuando $var no está configurado). Para solucionarlo, escribí un código de este tipo:
{% if var matches 0 %}do something{% endif %}¿Es una forma correcta de hacer una comparación === en Twig, o hice algo mal aquí? Si está mal, ¿cómo se debe arreglar?
Debe usar same as en Twig para comparaciones === :
{% set var1=0 %} {% set var2='0' %} {% if var1 is same as( 0 ) %} var1 is 0. {% else %} var1 is not zero. {% endif %} {% if var2 is same as( 0 ) %} var2 is 0. {% else %} var2 is not 0. {% endif %} {% if var2 is same as( '0' ) %} var2 is '0'. {% else %} var2 is not '0'. {% endif %}Aquí hay un twigfiddle que lo muestra en funcionamiento:
Aquí está la documentación para same as también indica que es equivalente a === . ¡Espero que te ayude!
Twig no tiene === pero tiene lo same as su lugar. Ver: https://twig.sensiolabs.org/doc/2.x/tests/sameas.html
Así que podrías escribir:
{% if var is same as(0) %}do something{% endif %} Eventualmente, puede usar is defined para verificar si la variable está configurada.