42 votes

Tester l'égalité des variables dans twig

En brindille existe-t-il un moyen simple de tester l'égalité de deux variables ?

{% if var1 = var2 %} n'est pas valable, {% if var1 is sameas(var2) %} ne fonctionne que si les deux sont des chaînes de caractères...

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

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

69voto

Russell Dias Points 17162

Pour autant que je sache, Twig supporte tous les opérateurs logiques standard. ==, !=, <, >, >=, and <=. Aussi, votre premier exemple {% if var1 = var2 %} ne vérifie pas l'égalité, il attribue var2 a var1 vous voudrez peut-être le remplacer par l'opérateur de comparaison == .

La brindille sameas intégré dans le test, est essentiellement un opérateur de comparaison de type strict === C'est pourquoi ils doivent être tous deux des chaînes de caractères dans votre exemple.

1voto

webdeveloper Points 351

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

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X