在Twig中是相同的(===)

Min*_* Li 5 php twig

这是PHP代码:

if ($var===0) {do something}
Run Code Online (Sandbox Code Playgroud)

只有在$var实际为0 时才会"做某事" (如果$var没有设置,它就不起作用,所以一切都好).

但是,Twig不支持===运算符,如果我写:

{% if var==0 %}do something{% endif %}
Run Code Online (Sandbox Code Playgroud)

$var总是"做某事"(即使没有设定).为了解决这个问题,我编写了这样一个代码:

{% if var matches 0 %}do something{% endif %}
Run Code Online (Sandbox Code Playgroud)

这是一个正确的方法=在Twig做比较,或者我在这里做错了什么?如果这是错的,应该如何解决?

Alv*_*unk 11

您需要same as在 Twig 中使用进行===比较:

{% set var1=0 %}
{% set var2='0' %}

{% if var1 is same as( 0 ) %}
    var1 is 0.
{% else %}
    var1 is not zero.
{% endif %}

{% if var2 is same as( 0 ) %}
    var2 is 0.
{% else %}
    var2 is not 0.
{% endif %}

{% if var2 is same as( '0' ) %}
    var2 is '0'.
{% else %}
    var2 is not '0'.
{% endif %}
Run Code Online (Sandbox Code Playgroud)

这是一个 twigfiddle 显示它的运行情况:

https://twigfiddle.com/k09myb

Here 的文档same as表明它等同于===. 希望对您有帮助!