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