Test de l'égalité des variables dans twig

Dans twig, est-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 de caractères...

(de docs) "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) %}

37
demandé sur Kendall Hopkins 2010-11-29 14:03:04

2 réponses

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

Le Twig sameas construit dans le test, 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.

61
répondu Russell Dias 2010-11-29 11:09:58

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

{% if (psong.songid) ==(song.id) %}
1
répondu webdeveloper 2013-06-17 13:18:13