2010-11-29 23 views
35

En twig, existe-t-il un moyen facile de tester l'égalité de 2 variables?Test de l'égalité des variables dans twig

{% if var1 = var2 %} n'est pas valide, {% if var1 is sameas(var2) %} ne fonctionne que si les deux sont une cordes ...

(de documents) « contrôles sameAs si un des points variables à la même adresse mémoire qu'une autre variable », comme des thats utile.

La seule façon que j'ai trouvé de comparer les entiers est de les convertir à la fois à des chaînes:
{% if var1|lower is sameas(var2|lower) %}

Répondre

56

Pour autant que je suis au courant Brindille soutient tous les opérateurs logiques standard ==, !=, <, >, >=, and <=. En outre, votre première l'exemple {% if var1 = var2 %} ne vérifie pas l'égalité, il attribue var2 à var1, vous souhaiterez peut-être le remplacer par l'opérateur de comparaison ==.

Le test intégré Twig sameas est essentiellement un opérateur de comparaison de type strict ===, d'où la nécessité d'utiliser des chaînes dans votre exemple.

+6

Cheers, la documentation ne fait pas évidente. – Sam

+0

Oui, même en 2015, la documentation est horrible, ne disent pas totalement les cas d'utilisation les plus simples. Vraiment étrange – Sliq

1

Si vous comparez la valeur qui ont une valeur numérique, vous pouvez utiliser:

{% if (psong.songid) ==(song.id) %}