Відповіді:
Залежно від того, що саме вам потрібно:
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()
функції PHP , is defined
він повернеться, true
якщо змінна буде визначена і її значення буде null.
is_ sameas
повинно бути {% if var is same as(false) %}
НЕ {% if var is sameas(false) %}
побачити Doc URL => twig.symfony.com/doc/2.x/tests/sameas.html
Як встановити значення за замовчуванням у twig: http://twig.sensiolabs.org/doc/filters/default.html
{{ my_var | default("my_var doesn't exist") }}
Або якщо ви не хочете, щоб він відображався після нуля:
{{ my_var | default("") }}
undefined or empty
і null
?
Без жодних припущень відповідь така:
{% if var is null %}
Але це буде справедливо лише в тому випадку, якщо var
це точно NULL
, а не будь-яке інше значення, яке оцінюється false
(наприклад, нуль, порожній рядок та порожній масив). Крім того, це призведе до помилки, якщо var
вона не визначена. Більш безпечним способом було б:
{% if var is not defined or var is null %}
який можна скоротити до:
{% if var|default is null %}
Якщо ви не надаєте аргумент для default
фільтра, він передбачає NULL
(тип за замовчуванням). Тож найкоротший і найбезпечніший спосіб (я знаю) перевірити чи порожня змінна (null, false, порожній рядок / масив тощо):
{% if var|default is empty %}
Я не думаю, що ти можеш. Це тому, що якщо змінна не визначена (не встановлена) у шаблоні гілочок, вона має вигляд NULL
або none
(у дуговому значенні). Я майже впевнений, що це запобігає появі помилок, що виникають у шаблоні.
Через відсутність "ідентичності" у Twig ( ===
) це найкраще, що можна зробити
{% if var == null %}
stuff in here
{% endif %}
Що означає:
if ((isset($context['somethingnull']) ? $context['somethingnull'] : null) == null)
{
echo "stuff in here";
}
Що , якщо ви добре в вашому типу жонглювання , означає , що такі речі, як 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"; }
. Отже, якщо значення не визначене або недійсне, воно буде істинним.
{% if var is empty %}
twig.sensiolabs.org/doc/tests/empty.html, що перекладається на PHP, if (empty($var))
що оцінює значення фальси ( !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
.
Крім того, якщо ваша змінна - ARRAY , також є кілька варіантів:
{% if arrayVariable[0] is defined %}
#if variable is not null#
{% endif %}
АБО
{% if arrayVariable|length > 0 %}
#if variable is not null#
{% endif %}
Це працюватиме лише у тому випадку, якщо ваш масив is defined
AND єNULL
{% if var is not null %}