当前位置: 首页 > 知识库问答 >
问题:

Twig三元运算符,简写if-then-else

丁阎宝
2023-03-14

Twig支持三元(简写if-else)运算符吗?

我需要一些条件逻辑,比如:

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

但是在Twig中使用速记。

共有3个答案

朱皓
2023-03-14

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

>

  • 如果foo回显否则回显

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

    如果<code>foo</code>echo它,否则echo<code>no</code>:

    {{ foo ?: 'no' }}
    

    {{ foo ? foo : 'no' }}
    

    如果fooecho否则echonothing:

    {{ foo ? 'yes' }}
    

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

    如果 foo 已定义且不为 null,则返回 foo 的值,否则不返回

    {{ foo ?? 'no' }}
    

    如果定义了<code>foo</code>的值(空值也计算在内),则返回该值,否则返回<code>no</code>:

    {{ foo|default('no') }}
    

  • 牛迪
    2023-03-14

    您可以使用 Twig 1.12.0 的速记语法

    {{ foo ?: 'no' }} is the same as {{ foo ? foo : 'no' }}
    {{ foo ? 'yes' }} is the same as {{ foo ? 'yes' : '' }}
    
    查淮晨
    2023-03-14
    {{ (ability.id in company_abilities) ? 'selected' : '' }}
    

    三元运算符记录在“其他运算符”下

     类似资料:
    • 问题内容: 您能否解释一下为什么使用第一个返回类型无法编译代码?消息是:。 在第二种情况下是否插入了显式强制转换? 问题答案: 由于类型推断规则。我不知道为什么要 这么做 (您应该检查JSL 的三元运算符部分),但是看来三元表达式不能从返回类型推断出类型参数。 换句话说,三元表达式的类型取决于其操作数的类型。但是其中一个操作数的类型参数()不确定。那时三元表达式仍然没有类型,因此它不会影响类型参数

    • 问题内容: 根据此页面上的示例,我有以下工作示例和非工作示例。 工作代码使用语句: 使用三元运算符的非工作代码: 更新 在Brian提出技巧之后,我发现echo 输出了预期的结果。下面的作品很有魅力! 问题答案: 的 语法不是“ if的简写”运算符(称为条件运算符),因为您无法以与执行以下操作相同的方式执行代码: 在您的示例中,您在不为空时执行语句。使用条件运算符不能以相同的方式进行操作。但是,您

    • 条件(三元)运算符是 JavaScript 仅有的使用三个操作数的运算符。一个条件后面会跟一个问号(?),如果条件为 truthy ,则问号后面的表达式A将会执行;表达式A后面跟着一个冒号(:),如果条件为 falsy ,则冒号后面的表达式B将会执行。本运算符经常作为 if 语句的简捷形式来使用。(MDN) 三元运算符,也称条件运算符、三目运算符。 三元运算符可以代替简单的 if 语句。 1. 语

    • 问题内容: 如何用elseif部分编写PHP三元运算符? 我看到了带有PHP三元运算符和的基本示例,如下所示: 我如何将这样的“ elseif”部分放入三元运算符中? 问题答案: 三元不是您想要的一个很好的解决方案。它不会在您的代码中可读,并且有很多更好的解决方案可用。 为什么不使用数组查找“ map”或“ dictionary”,如下所示: 此应用程序的三元最终看起来像这样: 为什么这样不好?因

    • 问题内容: 是否可以更改此: …对三元运算符? 问题答案: 好吧,中的行为就像这样…… …另一种看待它的方式… 你的问题有点含糊,我们必须在这里假设。 如果(且仅当)声明了一个返回值(,等。)-现在看来似乎没有做到这一点通过你的代码-那么你可以做到这一点… 如果callFunction(…)不返回值,那么你将无法使用三元运算符!就那么简单。你将使用不需要的东西。 请发布更多代码以清除所有问题 尽管

    • 问题内容: 是否可以在Python中一行执行此操作? 我已经尝试过三元运算符: 但是我的IDE(MyEclipse)不喜欢它,没有一个。 问题答案: 是的,您可以这样做: 如果为假,则短路将开始,并且右侧将不被评估。如果为true,则将评估右侧并添加元素。 我只是指出,执行上述操作是完全非Python的,无论如何,最好编写此代码: 示范: