Twig - 为什么定义为false的vars变空?

时间:2017-04-28 16:45:40

标签: symfony twig

将twig var定义为true,其值为' 1'。

将另一个var定义为false,它没有值。那是为什么?

{% set myOtherVar = true %}
{{ myOtherVar }}

这会输出' 1'

{% set myVar = false %}
{{ myVar }}

输出nada

https://twigfiddle.com/ebbwgf

这很麻烦,因为像这样的简单逻辑失败了:

{% set myVar = false %}
{% if myVar is not empty and not myVar %}
stuff
{% endif %}

2 个答案:

答案 0 :(得分:1)

因为您使用set将变量设置为布尔值。所以你需要将它用作布尔值。您无法打印该值。

你可能会做这样的逻辑:

{% set myOtherVar = true %}
{% set myVar = false %}

{% if not myVar %}
myVar is false
{% endif %}

{% if myOtherVar %}
myOtherVar is true
{% endif %}

这是一个显示它正常工作的小提琴:

https://twigfiddle.com/yxt1jd

希望有所帮助!

答案 1 :(得分:1)

false相当于''的{​​{1}}:

empty

https://twigfiddle.com/5g9thl

根据您要执行的操作,您可以使用defined测试变量是否存在:

{% set myVar = '' %}
{% if myVar is empty %}
    stuff
{% endif %}

{% set myOtherVar = false %}
{% if myVar is empty %}
    other stuff
{% endif %}

https://twigfiddle.com/m1n1q0