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.