Какую конструкцию я должен использовать, чтобы проверить, является ли значение NULL в шаблоне Twig?
php
twig
short-circuiting
пушистый
источник
источник
{% if var is not null %}
isset()
функции PHP ,is defined
будет возвращаться,true
если переменная определена и ее значение равно нулю.is_ sameas
должно быть{% if var is same as(false) %}
не{% if var is sameas(false) %}
увидеть Doc URL => twig.symfony.com/doc/2.x/tests/sameas.htmlКак установить значения по умолчанию в ветке: http://twig.sensiolabs.org/doc/filters/default.html
Или, если вы не хотите, чтобы он отображался, когда null:
источник
undefined or empty
иnull
?Без каких-либо предположений ответ:
Но это будет верно, только если
var
точноNULL
, а не любое другое значение, которое оцениваетсяfalse
(например, ноль, пустая строка и пустой массив). Кроме того, это вызовет ошибку, еслиvar
не определено. Более безопасный способ был бы:который можно сократить до:
Если вы не предоставляете аргумент для
default
фильтра, он предполагаетNULL
(по умолчанию). Итак, самый короткий и безопасный способ (я знаю), чтобы проверить, является ли переменная пустой (ноль, ложь, пустая строка / массив и т. Д.):источник
Я не думаю, что ты можешь. Это потому, что если переменная не определена (не установлена) в шаблоне ветки, она выглядит как
NULL
илиnone
(в терминах ветки). Я почти уверен, что это должно предотвратить появление ошибок шаблона в шаблоне.Из-за отсутствия «идентичности» в Twig (
===
) это лучшее, что вы можете сделатьЧто переводится как:
Что , если вы хорошо в вашем типа жонглирования , означает , что такие вещи, как
0
,''
,FALSE
,NULL
и неопределенные переменные будут также сделать это утверждение верно.Мое предложение состоит в том, чтобы попросить, чтобы личность была реализована в 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"; }
. Поэтому, если значение не определено или равно нулю, оно будет истинным.none
псевдоним дляnull
ссылки .{% 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источник
if var is not null
.Вы также можете использовать одну строку для этого:
источник
Вы можете использовать следующий код, чтобы проверить,
источник
Также, если вашей переменной является ARRAY , есть несколько вариантов:
ИЛИ
Это будет работать только если ваш массив
is defined
ANDNULL
источник