IT박스

나뭇 가지 PHP의 삼항 연산자 (if-then-else의 짧은 형태)

itboxs 2020. 6. 30. 20:57
반응형

나뭇 가지 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 템플릿 엔진.


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

삼항 연산자는 ' 기타 연산자 '에 문서화되어 있습니다.


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' }}
    

    평가 :

    이 정의되어 있고 null이 아닌foo 경우 값을 반환합니다 . 그렇지 않으면no

참고 :{{ foo|default('no') }} 후자는와 같은 빈 값에서 트리거되기 때문에와 약간 다릅니다 ''.

참고 : https://stackoverflow.com/questions/11820297/ternary-operators-in-twig-php-shorthand-form-of-if-then-else

반응형