Twig 细枝是否有空合并运算符?

Twig 细枝是否有空合并运算符?,twig,coalesce,Twig,Coalesce,我正在使用PHP模板引擎 是否有可以输出第一个非空值(合并)的运算符 例如(使用PHP伪代码): 我知道我可以做这样的事情,但这有点冗长: {% if title %}{{ title }}{% else %}{{ "Default Title" }}{% endif %} 是的,有一个过滤器叫做。您可以将其应用于代码,如下所示: {{ title|default("Default Title") }} 从Twig1.12.0开始,它确实有?:操作符,但它不是真正的“空合并”。它检查真实性,

我正在使用PHP模板引擎

是否有可以输出第一个非空值(合并)的运算符

例如(使用PHP伪代码):

我知道我可以做这样的事情,但这有点冗长:

{% if title %}{{ title }}{% else %}{{ "Default Title" }}{% endif %}

是的,有一个过滤器叫做。您可以将其应用于代码,如下所示:

{{ title|default("Default Title") }}
从Twig1.12.0开始,它确实有
?:
操作符,但它不是真正的“空合并”。它检查真实性,而不仅仅是空值,因此
0?:1
将显示
1


零聚结算子在《细枝1.24》(2016年1月25日)中正式引入

这意味着现在可以这样做了

{{ title ?? "Default Title" }}
您甚至可以将它们链接在一起,以检查多个变量,直到找到有效的非空值

{{ var1 ?? var2 ?? var3 ?? var4 }}

答案由@molecularman提供,但我想让您知道,您可以缩短最后一个示例:
{{title?title:'Default title'}}
这是不正确的,
Default
执行类似布尔的计算,例如,这意味着非空值
false
也将被默认值替换。从Twig v1.24开始,最好使用
??
操作符。看见
{{ var1 ?? var2 ?? var3 ?? var4 }}