web-dev-qa-db-fra.com

Test de l'égalité des variables dans twig

Dans twig , existe-t-il un moyen facile de tester l'égalité de 2 variables?

{% if var1 = var2 %} N'est pas valide, {% if var1 is sameas(var2) %} ne fonctionne que si les deux sont des chaînes ...

(à partir de documents) "sameas vérifie si une variable pointe vers la même adresse mémoire qu'une autre variable", comme c'est utile.

Donc, la seule façon que j'ai trouvée de comparer des entiers est de les convertir tous les deux en chaînes:
{% if var1|lower is sameas(var2|lower) %}

39
Sam

Pour autant que je sache Twig prend en charge tous les opérateurs logiques standard ==, !=, <, >, >=, and <=. Aussi, votre premier exemple {% if var1 = var2 %} ne vérifie pas l'égalité, il affecte var2 à var1, vous pouvez le remplacer par l'opérateur de comparaison ==.

Le Twig sameas test intégré, est essentiellement un opérateur de comparaison de type strict ===, d'où la raison pour laquelle ils doivent tous deux être des chaînes dans votre exemple.

66
Russell Dias

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

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