Commonly used operators are also available in Twig.
If you are familiar with the program, you can write it by speculation.
I would like to summarize it roughly.
Arithmetic operator
You can use the operators of +, -, /, %, //, *, **
.
easy explanation
+: Addition // {{ 1 + 1 }} is 2. -: Subtraction // {{ 3 - 2 }} is 1. /: Division // {{ 1 / 2 }} is {{ 0.5 }}. *: Multiply // {{ 2 * 2 }} is 4. %: The remainder of the division // {{ 11 % 7 }} is 4. //: Returns a rounded integer after division // {{ 20 // 7 }} is 2, {{ -20 // 7 }} is -3 **: raising the left value to the power of the right value // {{ 2 ** 3 }} is 8.
Logical operator
It is used for conditional branching (if statement).
and, or, not,()
can be used. Use in lowercase.
&&
and ||
can’t use.
Comparison operator
==, !=, <, >, >=, <=
Common comparison operators can be used.
The exact equality operator ===
cannot be used. Use is same as(value)
instead.
!==
is is not same as(value)
.
Other available comparisons are listed below.
{% if 'foo' starts with 'f' %} {% endif %} {% if 'bar' ends with 'r' %} {% endif %} {% if phoneNumber matches '/^[\\d\\.]+$/' %} {% endif %}
The above matches
is also introduced in the following article. This is useful when you want to compare with a regular expression.
[Twig] Summary of how to use if statement
Other operators
“In”: Check if the value is included
// returns true {{ 1 in [1, 2, 3] }} {{ 'cd' in 'abcde' }}
You can also use not
to check that it is not included.
{% if 1 not in [1, 2, 3] %}
“Is”: Do the test specified on the right
I often use it in Twig. Below is a sample of the actual test.
// constant : Comparison with constants {% if product.status is constant('PRODUCT::PUBLISHED') %} exactly the same as PRODUCT::PUBLISHED {% endif %} // difined : Whether it is defined {% if foo is defined %} {% endif %} // null : Whether null {% if foo is null %} {% endif %} // empty : Whether variables or arrays are empty {% if foo is empty %} {% endif %} // divisible by() : Whether it is divisible by the specified number {% if loop.index is divisible by(3) %} {% endif %} // iterable : Check that the variable is an array or an object {% if foos is iterable %} {% endif %} // same as() : Whether they are exactly the same {% if foo is same as('test') %} {% endif %} // even,odd : Whether it is even or odd {% if foo is even %} {% endif %}
“|”: Apply filter
{{ name|lower }}
“..”: Create a sequence based on the values before and after the operator
{% set numbers = 1..5 %} {{ dump(numbers) }} // result array:5 [▼ 0 => 1 1 => 2 2 => 3 3 => 4 4 => 5 ]
“~”: Convert values to strings and concatenate them
It is used when combining variables.
{% set name = 'tester' %} {{ "Hello " ~ name ~ "!" }} // result Hello tester!
“?:”: Ternary operator
{{ foo ? 'yes' : 'no' }}
Simply put, it returns “yes” if foo is true. Returns “no” if foo is false.
“??”: null coalescing operator
{{ foo ?? 'no' }}
Returns the value of “foo” if foo is defined rather than null. Otherwise, it returns “no”.
“# {Expression}”: You can insert an expression by interrupting between strings.
{{ "foo #{1 + 2} baz" }} // result foo 3 baz
The above is a summary of the operators that can be used in Twig.
[…] [Twig] Summary of available operators […]