Тернарные операторы в Twig php (сокращенная форма if-then-else)
можно ли использовать тернарные операторы в шаблонах? Теперь для добавления некоторого класса к элементу DOM зависит от некоторого условия, которое мне нравится:
{%if ability.id in company_abilities%}
<tr class="selected">
{%else%}
<tr>
{%endif%}
вместо
<tr class="<?=in_array($ability->id, $company_abilities) ? 'selected' : ''?>">
в нативный шаблонизатор на PHP.
5 ответов:
{{ (ability.id in company_abilities) ? 'selected' : '' }}тернарный оператор задокументирован под 'других операторов'
вы можете использовать сокращенный синтаксис с ветки 1.12.0
{{ foo ?: 'no' }} is the same as {{ foo ? foo : 'no' }} {{ foo ? 'yes' }} is the same as {{ foo ? 'yes' : '' }}
тернарный оператор (
?:)поддержка расширенного тернарного оператора была добавлена в прутик 1.12.0.
дело №1
фрагмент:
{{ foo ? 'yes' : 'no' }}оценка:
если
fooЭхоyesеще эхоno
случае #2
фрагмент:
{{ foo ?: 'no' }}или
{{ foo ? foo : 'no' }}оценка:
если
fooэхо это, иначе Эхоno
дело № 3
фрагмент:
{{ foo ? 'yes' }}или
{{ foo ? 'yes' : '' }}оценка:
если
fooЭхоyesдругое Эхо ничего
нуль-коалесцирующий оператор (
??)
дело №1
фрагмент:
{{ foo ?? 'no' }}оценка:
возвращает значение
fooесли это определен и not null,noиначеПримечание: это немного отличается от
{{ foo|default('no') }}, так как последний будет срабатывать также из пустых значений, таких как''.
Comments
<pre>
<code class="language-php">{{ foo == 'total' ? 'Общая стоимость' : (foo == 'shipping' ? 'Доставка' : 'no') }}</code></pre>
<p> </p>