Testing variable equality in twig

67,248

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) %}
Share:
67,248

Related videos on Youtube

Sam
Author by

Sam

Web developer from Ipswich, UK

Updated on June 18, 2020

Comments

  • Sam
    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
    Sam over 13 years
    Cheers, the documentation doesn't make it obvious.
  • Sliq
    Sliq almost 9 years
    Yeah, even in 2015 the documentation is horrible, totally don't say the most simple use cases. Really weird