Quelle construction dois-je utiliser pour vérifier si une valeur est NULL dans un modèle Twig?
php
twig
short-circuiting
Duveteux
la source
la source
{% if var is not null %}
isset()
fonction PHP ,is defined
retourneratrue
si une variable est définie et sa valeur est nulle.is_ sameas
il{% if var is same as(false) %}
ne faut pas{% if var is sameas(false) %}
voir Doc url => twig.symfony.com/doc/2.x/tests/sameas.htmlComment définir les valeurs par défaut dans twig: http://twig.sensiolabs.org/doc/filters/default.html
Ou si vous ne souhaitez pas qu'il s'affiche lorsqu'il est nul:
la source
undefined or empty
etnull
?Sans aucune hypothèse, la réponse est:
Mais cela ne sera vrai que si
var
est exactementNULL
, et pas toute autre valeur évaluéefalse
(comme zéro, chaîne vide et tableau vide). En outre, cela provoquera une erreur s'ilvar
n'est pas défini. Un moyen plus sûr serait:qui peut être raccourci à:
Si vous ne fournissez pas d'argument au
default
filtre, il supposeNULL
(sorte de valeur par défaut par défaut). Donc, le moyen le plus court et le plus sûr (je sais) de vérifier si une variable est vide (null, false, chaîne / tableau vide, etc.):la source
Je ne pense pas que vous puissiez. En effet, si une variable n'est pas définie (non définie) dans le modèle de brindille, elle ressemble à
NULL
ounone
(en termes de brindille). Je suis sûr que c'est pour empêcher les erreurs d'accès incorrectes de se produire dans le modèle.En raison de l'absence d'une "identité" dans Twig (
===
), c'est le mieux que vous puissiez faireCe qui se traduit par:
Qui , si votre bien à votre jonglerie de type signifie que les choses telles que
0
,''
,FALSE
,NULL
et un var non définie également cette déclaration vrai.Ma suggestion est de demander que l'identité soit implémentée dans Twig.
la source
{if var is none}
et quel est l'équivalent PHP?{% if abcxyz is none %}
devientif (isset($context["abcxyz"])) { $_abcxyz_ = $context["abcxyz"]; } else { $_abcxyz_ = null; }
if ((null === $_abcxyz_)) { echo "hi"; }
. Donc, fondamentalement, si la valeur n'est pas définie ou nulle, ce sera vrai.none
est un alias pournull
ref .{% if var is empty %}
twig.sensiolabs.org/doc/tests/empty.html qui se traduit par PHPif (empty($var))
qui évalue par rapport à une valeur de falsey (!isset, null, 0, array(), "", false, "0", 0.0
) php.net/manual/en/function.empty.php Vous pouvez également utilisé{% if var is same as(var) %}
pour l'identité (===
). twig.sensiolabs.org/doc/tests/sameas.htmlla source
if var is not null
.Vous pouvez également utiliser une ligne pour ce faire:
la source
vous pouvez utiliser le code suivant pour vérifier si
la source
De plus, si votre variable est un TABLEAU , il y a aussi peu d'options:
OU
Cela ne fonctionnera que si votre tableau
is defined
ET estNULL
la source