【问题标题】:Ternary concatenation in TwigTwig 中的三元串联
【发布时间】:2017-06-26 10:56:30
【问题描述】:

如果某些条件为真,在将一个字符串连接到另一个字符串时,是否可以在 Twig 中使用三元运算符?

这对我有用:

{% set a = 'initial' %}
{% if foo == bar %}
     {% set a = a ~ ' concatenate' %}
{% endif %}
<p>{{ a }}</p>

但是当我尝试像这样简化它时,它会抛出一个错误:

{% set a = 'initial' ~ (foo == bar) ? ' concatenate' : '' %}
<p>{{ a }}</p>

是我做错了什么,还是在 Twig 中这种简化根本不可能?

【问题讨论】:

    标签: twig ternary-operator string-concatenation


    【解决方案1】:

    由于precedence 的顺序,您需要添加括号,
    {% set a = 'initial' ~ ((foo == bar) ? ' concatenate' : '') %}


    如果第二部分是空的,你甚至可以省略它,例如

    {% set b = 'initial' ~ ((foo == foo) ? ' concatenate') %}
    

    twigfiddle

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-24
      • 2012-08-02
      • 1970-01-01
      • 2022-08-03
      • 1970-01-01
      • 1970-01-01
      • 2016-12-09
      • 1970-01-01
      相关资源
      最近更新 更多