Testing variable equality in twig
Solution 1
As far as I'm aware Twig supports all of the standard logical operators ==, !=, <, >, >=, and <=.
Also, your first example {% if var1 = var2 %}
does not check for equality, it assigns var2
to var1
, you might want to change it to the comparison operator ==
.
The Twig sameas
built in test, is essentially a strict type comparison operator ===
, hence why they both need to be strings in your example.
Solution 2
If you are comparing value which have a numeric value you can use:
{% if (psong.songid) ==(song.id) %}
Related videos on Youtube
Comments
-
Sam almost 4 years
In twig, is there an easy way to test the equality of 2 variables?
{% if var1 = var2 %}
isn't valid,{% if var1 is sameas(var2) %}
only works if both are a strings...(from docs) "sameas checks if a variable points to the same memory address than another variable", like thats useful.
So the only way I've found of comparing integers is to convert them both to strings:
{% if var1|lower is sameas(var2|lower) %}
-
Sam over 13 yearsCheers, the documentation doesn't make it obvious.
-
Sliq almost 9 yearsYeah, even in 2015 the documentation is horrible, totally don't say the most simple use cases. Really weird