Ist es möglich, ternäre Operatoren in twig template zu verwenden? Nun, um dem DOM-Element eine Klasse hinzuzufügen, muss ich folgende Bedingungen erfüllen:
{%if ability.id in company_abilities%}
<tr class="selected">
{%else%}
<tr>
{%endif%}
Anstatt
<tr class="<?=in_array($ability->id, $company_abilities) ? 'selected' : ''?>">
in nativen PHP-Template-Engine.
{{ (ability.id in company_abilities) ? 'selected' : '' }}
Der ternäre Operator ist unter ' andere Operatoren ' dokumentiert.
Sie können die Kurzschrift-Syntax ab Twig 1.12.0 verwenden
{{ foo ?: 'no' }} is the same as {{ foo ? foo : 'no' }}
{{ foo ? 'yes' }} is the same as {{ foo ? 'yes' : '' }}
?:
)Unterstützung für den erweiterten ternären Operator wurde in Twig 1.12. hinzugefügt.
Fall 1
Snippet:
{{ foo ? 'yes' : 'no' }}
Wertet aus:
if
foo
echoyes
else echono
Fall # 2
Snippet:
{{ foo ?: 'no' }}
oder
{{ foo ? foo : 'no' }}
Wertet aus:
wenn
foo
es ausgeben, sonstno
ausgeben
Fall # 3
Snippet:
{{ foo ? 'yes' }}
oder
{{ foo ? 'yes' : '' }}
Wertet aus:
wenn
foo
echoyes
sonst echo nichts
??
)Fall 1
Snippet:
{{ foo ?? 'no' }}
Wertet aus:
Gibt den Wert von
foo
zurück, wenn definiert ist und nicht null, andernfallsno
Anmerkung: Dies unterscheidet sich geringfügig von {{ foo|default('no') }}
, da letzteres auch bei leeren Werten wie ''
Ausgelöst wird.