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) %}
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.
Si vous comparez la valeur qui ont une valeur numérique, vous pouvez utiliser:
{% if (psong.songid) ==(song.id) %}