Ternaire opérateurs dans Twig php (forme Abrégée de si-alors-sinon)
Est-il possible d'utiliser des opérateurs ternaires dans le modèle twig? Maintenant, pour ajouter une classe à L'élément DOM dépend d'une condition que je fais comme ceci:
{%if ability.id in company_abilities%}
<tr class="selected">
{%else%}
<tr>
{%endif%}
Au Lieu de
<tr class="<?=in_array($ability->id, $company_abilities) ? 'selected' : ''?>">
Dans le moteur de modèle PHP natif.
3 réponses
{{ (ability.id in company_abilities) ? 'selected' : '' }}
L'opérateur ternaire est documentée dans 'autres opérateurs'
Vous pouvez utiliser la syntaxe abrégée à partir de Twig 1.12.0
{{ foo ?: 'no' }} is the same as {{ foo ? foo : 'no' }}
{{ foo ? 'yes' }} is the same as {{ foo ? 'yes' : '' }}
L'opérateur ternaire (?:
)
La prise en charge de l'opérateur ternaire étendu A été ajoutée dans Twig 1.12.0.
-
Cas # 1
Extrait de Code:
{{ foo ? 'yes' : 'no' }}
Évalue:
Si
foo
echoyes
else echono
-
Cas # 2
Extrait de Code:
{{ foo ?: 'no' }}
Ou
{{ foo ? foo : 'no' }}
Évalue:
Si
foo
l'écho, sinon l'échono
-
Cas # 3
Extrait de Code:
{{ foo ? 'yes' }}
Ou
{{ foo ? 'yes' : '' }}
Évalue:
Si
foo
echoyes
else echo rien
L'opérateur de coalescence null(??
)
-
Cas # 1
Extrait de Code:
{{ foo ?? 'no' }}
Évalue:
Retourne la valeur de
foo
si est définie et pas null,no
sinon
Note: {[23] } ceci est légèrement différent de {{ foo|default('no') }}
, puisque ce dernier sera également déclenché à partir de valeurs vides comme ''
.