Jakiej konstrukcji należy użyć, aby sprawdzić, czy wartość w szablonie Twig ma wartość NULL?
php
twig
short-circuiting
Puszysty
źródło
źródło
{% if var is not null %}
isset()
funkcji PHP ,is defined
zwróci,true
jeśli zmienna jest zdefiniowana, a jej wartość jest null.is_ sameas
musi być{% if var is same as(false) %}
to{% if var is sameas(false) %}
Doc url => twig.symfony.com/doc/2.x/tests/sameas.htmlJak ustawić wartości domyślne w gałązce: http://twig.sensiolabs.org/doc/filters/default.html
Lub jeśli nie chcesz, aby wyświetlał się jako null:
źródło
undefined or empty
inull
?Bez żadnych założeń odpowiedź brzmi:
Ale będzie to prawdą tylko wtedy, gdy
var
jest dokładnieNULL
, a nie jakąkolwiek inną wartością, która ma wartośćfalse
(np. Zero, pusty ciąg i pusta tablica). Poza tym spowoduje błąd, jeślivar
nie zostanie zdefiniowany. Bezpieczniejszym sposobem byłoby:które można skrócić do:
Jeśli nie podasz argumentu do
default
filtra, zakłada sięNULL
(domyślnie coś w rodzaju domyślnego). Zatem najkrótszy i najbezpieczniejszy sposób (wiem), aby sprawdzić, czy zmienna jest pusta (null, false, pusty ciąg / tablica itp.):źródło
Nie sądzę, że możesz. Wynika to z faktu, że jeśli zmienna jest niezdefiniowana (nie ustawiona) w szablonie gałązki, wygląda jak
NULL
lubnone
(w kategoriach gałązek). Jestem prawie pewien, że ma to na celu wyeliminowanie błędów złego dostępu w szablonie.Ze względu na brak „tożsamości” w Twig (
===
) jest to najlepsze, co możesz zrobićCo przekłada się na:
Który, jeśli dobry w swoim rodzaju żonglerki oznacza, że rzeczy takie jak
0
,''
,FALSE
,NULL
, i niezdefiniowane var będzie również to stwierdzenie prawdziwe.Sugeruję, aby poprosić o wdrożenie tożsamości w Twig.
źródło
{if var is none}
i jaki jest odpowiednik PHP?{% if abcxyz is none %}
staje sięif (isset($context["abcxyz"])) { $_abcxyz_ = $context["abcxyz"]; } else { $_abcxyz_ = null; }
if ((null === $_abcxyz_)) { echo "hi"; }
. Zasadniczo więc, jeśli wartość jest niezdefiniowana lub ma wartość null, będzie to prawda.none
jest aliasem dlanull
ref .{% if var is empty %}
twig.sensiolabs.org/doc/tests/empty.html, co przekłada się na PHP,if (empty($var))
który ocenia na podstawie wartości falsey (!isset, null, 0, array(), "", false, "0", 0.0
) php.net/manual/en/function.empty.php Możesz użyj także{% if var is same as(var) %}
do tożsamości (===
). twig.sensiolabs.org/doc/tests/sameas.htmlźródło
if var is not null
.Możesz również użyć jednej linii, aby to zrobić:
źródło
możesz użyć następującego kodu, aby sprawdzić, czy
źródło
Również jeśli twoja zmienna jest tablicą , istnieje również kilka opcji:
LUB
Działa to tylko wtedy, gdy macie tablicę
is defined
ANDNULL
źródło