25

我正在使用Twig PHP 模板引擎。

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

例如(使用 PHP 伪代码):

{{ title ?: "Default Title" }}

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

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

3 回答 3

45

空合并运算符在Twig 1.24(2016 年 1 月 25 日)中正式引入。

* 添加对??运营商的支持

这意味着现在可以做到这一点......

{{ title ?? "Default Title" }}

您甚至可以将它们链接在一起,以检查多个变量,直到找到有效的非空值。

{{ var1 ?? var2 ?? var3 ?? var4 }}
于 2016-10-24T04:44:22.747 回答
28

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

{{ title|default("Default Title") }}
于 2012-11-19T13:43:42.097 回答
6

从 Twig 1.12.0 开始,它确实?:运算符,但它并不是真正的“空值合并”。它检查真实性,而不仅仅是空值,因此0 ?: 1会出来1

文档

于 2014-12-02T23:01:17.180 回答