与此question相关。
当a == true而b == false时,你会怎么做?这一定是 在投票之前是否相信,但没有什么可以找到的。
所以:
{% if a == true and b == false %}
do stuff
{% endif %}
你应该说这应该有效,但事实并非如此:
{% if (a == true) and (b == false) %}
do stuff
{% endif %}
UPDATE2 这是有效的,因为一个是真的,两个是假的
{% if variant.stock.track == true %}
{% if variant.stock.on_stock == false %}
({{ 'Out of stock' | t }}){% else %} ({{ 'In stock' | t }})
{% endif %}
{% endif %}
答案 0 :(得分:8)
通常在验证为false时我使用sameas
。在你的情况下:
{% if a and b is sameas(false) %}
然而documentation implies你也可以使用速记如下:
{% if a and b == false %}
请注意,此检查取决于所设置的变量。如果未设置变量,则检查true或false将失败,因为该变量的值为null
。
因此,如果你想检查是真还是假,并且想要确定如果没有设置值,你就会得到假;你可以使用default
:
{% if a and b|default(false) is sameas(false) %}
或者如果您更喜欢php风格:
{% if a and b|default(false) == false %}
这也应该有效:
{% if variant.stock.track and variant.stock.on_stock|default(false) is sameas(false) %}
({{ 'Out of stock' | t }}){% else %} ({{ 'In stock' | t }})
{% endif %}
或
{% if variant.stock.track and variant.stock.on_stock|default(false) == false %}
({{ 'Out of stock' | t }}){% else %} ({{ 'In stock' | t }})
{% endif %}