Que construção devo usar para verificar se um valor é NULL em um modelo Twig?
php
twig
short-circuiting
Fofo
fonte
fonte
{% if var is not null %}
isset()
função PHP ,is defined
retornarátrue
se uma variável for definida e seu valor for nulo.is_ sameas
deve ser{% if var is same as(false) %}
não{% if var is sameas(false) %}
ver Doc url => twig.symfony.com/doc/2.x/tests/sameas.htmlComo definir valores padrão no twig: http://twig.sensiolabs.org/doc/filters/default.html
Ou se você não deseja que seja exibido quando nulo:
fonte
undefined or empty
enull
?Sem nenhuma suposição, a resposta é:
Mas isso será verdadeiro apenas se
var
for exatamenteNULL
, e não qualquer outro valor que seja avaliadofalse
(como zero, cadeia vazia e matriz vazia). Além disso, causará um erro sevar
não estiver definido. Uma maneira mais segura seria:que pode ser reduzido para:
Se você não fornecer um argumento para o
default
filtro, ele assumiráNULL
(tipo de padrão padrão). Portanto, a maneira mais curta e segura (eu sei) de verificar se uma variável está vazia (nula, falsa, string / matriz vazia, etc):fonte
Eu não acho que você pode. Isso ocorre porque, se uma variável é indefinida (não definida) no modelo de galho, ela se parece com (
NULL
ounone
em termos de galho). Tenho certeza de que isso é para suprimir erros de acesso incorreto no modelo.Devido à falta de uma "identidade" no Twig (
===
), é o melhor que você pode fazerQue se traduz em:
Que se o seu bom em seu tipo de malabarismo , significa que as coisas tais como
0
,''
,FALSE
,NULL
, e um var indefinido irá também fazer essa afirmação verdadeira.Minha sugestão é pedir que a identidade seja implementada no Twig.
fonte
{if var is none}
e qual é o equivalente em PHP?{% if abcxyz is none %}
torna-seif (isset($context["abcxyz"])) { $_abcxyz_ = $context["abcxyz"]; } else { $_abcxyz_ = null; }
if ((null === $_abcxyz_)) { echo "hi"; }
. Então, basicamente, se o valor for indefinido ou nulo, será verdade.none
é um apelido paranull
ref .{% if var is empty %}
twig.sensiolabs.org/doc/tests/empty.html, que é traduzido para PHPif (empty($var))
que é avaliado em relação a um valor falsey (!isset, null, 0, array(), "", false, "0", 0.0
) php.net/manual/en/function.empty.php Você pode também use{% if var is same as(var) %}
para identity (===
). twig.sensiolabs.org/doc/tests/sameas.htmlfonte
if var is not null
.Você também pode usar uma linha para fazer isso:
fonte
você pode usar o código a seguir para verificar se
fonte
Além disso, se sua variável for uma ARRAY , também existem poucas opções:
OU
Isso funcionará apenas se sua matriz
is defined
AND forNULL
fonte