如果一个是真的而另一个是假的,那就是树枝

Meu*_*les 5 twig

关于这个问题.

当a == true和b == false时你怎么办?这必须是在投票之前相信与否,但没有什么可以找到的.

所以:

{% if a == true and b == false %}
do stuff
{% endif %}
Run Code Online (Sandbox Code Playgroud)

你应该说这应该有效,但事实并非如此:

{% if (a == true) and (b == false) %}
do stuff
{% endif %}
Run Code Online (Sandbox Code Playgroud)

UPDATE2这有效,因为一个是真的,两个是假的

{% if variant.stock.track == true %} 
{% if variant.stock.on_stock == false %}
  ({{ 'Out of stock' | t }}){% else %} ({{ 'In stock' | t }})
{% endif %}
{% endif %}
Run Code Online (Sandbox Code Playgroud)

Luc*_*eos 9

通常在验证我使用时sameas.在你的情况下:

{% if a and b is sameas(false) %}
Run Code Online (Sandbox Code Playgroud)

但是文档暗示你也可以使用速记如下:

{% if a and b == false %}
Run Code Online (Sandbox Code Playgroud)

请注意,此检查取决于所设置的变量.如果未设置变量,则检查true或false将失败,因为变量将具有该值null.

因此,如果您想要检查true或false,并希望确保如果没有设置值,则会得到错误; 你可能会用default:

{% if a and b|default(false) is sameas(false) %}
Run Code Online (Sandbox Code Playgroud)

或者如果您更喜欢php风格:

{% if a and b|default(false) == false %}
Run Code Online (Sandbox Code Playgroud)

这也应该有效:

{% if variant.stock.track and variant.stock.on_stock|default(false) is sameas(false) %}
      ({{ 'Out of stock' | t }}){% else %} ({{ 'In stock' | t }})
{% endif %}
Run Code Online (Sandbox Code Playgroud)

要么

{% if variant.stock.track and variant.stock.on_stock|default(false) == false %}
  ({{ 'Out of stock' | t }}){% else %} ({{ 'In stock' | t }})
{% endif %}
Run Code Online (Sandbox Code Playgroud)

  • 不是“same as”而不是“sameas”吗? (2认同)