[php] Twig에서 null을 확인하는 방법은 무엇입니까?

Twig 템플릿에서 값이 NULL인지 확인하려면 어떤 구조를 사용해야합니까?



답변

정확히 필요한 것에 따라 :

  • is null값이 null다음 인지 확인합니다 .

    {% if var is null %}
        {# do something #}
    {% endif %}
  • is defined 변수가 정의되어 있는지 확인합니다.

    {% if var is not defined %}
        {# do something #}
    {% endif %}

또한 is sameas두 값의 유형을 엄격하게 비교 하는 테스트는 null(와 같은 false) 이외의 값을 확인하는 데 관심이있을 수 있습니다 .

{% if var is sameas(false) %}
    {# do something %}
{% endif %}


답변

나뭇 가지에 기본값을 설정하는 방법 : http://twig.sensiolabs.org/doc/filters/default.html

{{ my_var | default("my_var doesn't exist") }}

또는 null 일 때 표시하지 않으려는 경우 :

{{ my_var | default("") }}


답변

어떤 가정도없이 대답은 다음과 같습니다.

{% if var is null %}

그러나 이것은 var정확히 NULL이고 평가하는 다른 값 false(예 : 0, 빈 문자열 및 빈 배열)이 아닌 경우에만 해당됩니다 . 또한 var정의되지 않은 경우 오류가 발생합니다 . 더 안전한 방법은 다음과 같습니다.

{% if var is not defined or var is null %}

단축 할 수 있습니다 :

{% if var|default is null %}

default필터에 인수를 제공하지 않으면 NULL(기본 기본값 정렬)로 가정합니다 . 따라서 변수가 비어 있는지 확인하는 가장 짧고 안전한 방법 (내가 아는 것) (널, 거짓, 빈 문자열 / 배열 등) :

{% if var|default is empty %}


답변

나는 당신이 할 수 있다고 생각하지 않습니다. 잔 가지 템플릿에서 변수가 정의되지 않은 경우 (설정되지 않은 경우) NULL또는 none잔 가지로 나타납니다. 템플릿에서 잘못된 액세스 오류가 발생하는 것을 억제하는 것입니다.

나뭇 가지에 “정체성”이 없기 때문에 ( ===) 이것이 최선입니다

{% if var == null %}
    stuff in here
{% endif %}

다음과 같이 해석됩니다.

if ((isset($context['somethingnull']) ? $context['somethingnull'] : null) == null)
{
  echo "stuff in here";
}

어떤 경우에 당신의 좋은 타입 저글링 , 수단과 같은 일들이 0, '', FALSE,NULL , 그리고 정의되지 않은 VAR는 그 진술이 사실 만들 것입니다.

제 제안은 아이덴티티가 Twig에 구현되도록 요구하는 것입니다.


답변

     //test if varibale exist
     {% if var is defined %}
         //todo
     {% endif %}

     //test if variable is not null
     {% if var is not null %}
         //todo
     {% endif %}


답변

한 줄을 사용하여 그렇게 할 수도 있습니다.

{{ yourVariable is not defined ? "Not Assigned" : "Assigned" }}


답변

다음 코드를 사용하여 여부를 확인할 수 있습니다

{% if var is defined %}

var is variable is SET

{% endif %}