답변:
정확히 필요한 것에 따라 :
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 %}
isset()
함수 와 달리 변수가 정의되어 있고 값이 null이면 is defined
반환 true
합니다.
is_ sameas
해야 {% if var is same as(false) %}
하지 {% if var is sameas(false) %}
참조 문서의 URL => twig.symfony.com/doc/2.x/tests/sameas.html
나뭇 가지에 기본값을 설정하는 방법 : http://twig.sensiolabs.org/doc/filters/default.html
{{ my_var | default("my_var doesn't exist") }}
또는 null 일 때 표시하지 않으려는 경우 :
{{ my_var | default("") }}
undefined or empty
와 null
?
어떤 가정도없이 대답은 다음과 같습니다.
{% 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에 구현되도록 요구하는 것입니다.
{if var is none}
, PHP는 무엇입니까?
{% if abcxyz is none %}
가됩니다 if (isset($context["abcxyz"])) { $_abcxyz_ = $context["abcxyz"]; } else { $_abcxyz_ = null; }
if ((null === $_abcxyz_)) { echo "hi"; }
. 따라서 기본적으로 값이 정의되어 있지 않거나 null이면 true입니다.
{% if var is empty %}
twig.sensiolabs.org/doc/tests/empty.html PHP로 변환 if (empty($var))
falsey 값에 대하여 평가하여 (즉 !isset, null, 0, array(), "", false, "0", 0.0
) php.net/manual/en/function.empty.php 당신을 수 있습니다 {% if var is same as(var) %}
신원 에도 사용 됩니다 ( ===
). twig.sensiolabs.org/doc/tests/sameas.html
//test if varibale exist
{% if var is defined %}
//todo
{% endif %}
//test if variable is not null
{% if var is not null %}
//todo
{% endif %}
if var is not null
있습니다.
{% if var is not null %}