Twig中的三元运算符php(if-then-else的简写forms)

有没有可能在树枝模板中使用三元运算符? 现在,添加一些类的DOM元素取决于一些条件,我这样做:

{%if ability.id in company_abilities%} <tr class="selected"> {%else%} <tr> {%endif%} 

代替

 <tr class="<?=in_array($ability->id, $company_abilities) ? 'selected' : ''?>"> 

在本机php模板引擎。

 {{ (ability.id in company_abilities) ? 'selected' : '' }} 

三元运算符logging在“ 其他运算符 ”

您可以使用Twig 1.12.0的简写语法

 {{ foo ?: 'no' }} is the same as {{ foo ? foo : 'no' }} {{ foo ? 'yes' }} is the same as {{ foo ? 'yes' : '' }} 

三元运算符( ?: :)

Twig 1.12.0中添加了对扩展三元运算符的支持。

  1. 情况1

    片段:

     {{ foo ? 'yes' : 'no' }} 

    评估:

    如果foo回应yes否则回显no


  2. 案例#2

    片段:

     {{ foo ?: 'no' }} 

    要么

     {{ foo ? foo : 'no' }} 

    评估:

    如果foo回声,否则回显no


  3. 案例#3

    片段:

     {{ foo ? 'yes' }} 

    要么

     {{ foo ? 'yes' : '' }} 

    评估:

    如果foo回应yes否则不回应


空合并运算符( ??

  1. 情况1

    片段:

     {{ foo ?? 'no' }} 

    评估:

    返回foo的值(如果已定义),不是null ,否则返回

注意:这与{{ foo|default('no') }}略有不同,因为后者也会由''等空值触发。