Yanıtlar:
Tam olarak neye ihtiyacınız olduğuna bağlı olarak:
is null
değerin olup olmadığını kontrol eder null
:
{% if var is null %}
{# do something #}
{% endif %}
is defined
değişkenin tanımlanıp tanımlanmadığını kontrol eder:
{% if var is not defined %}
{# do something #}
{% endif %}
Ayrıca is sameas
iki değer bir tür sıkı bir karşılaştırma yapar testi dışında kalan değerlerin kontrolü için ilgi çekici olabilir null
(gibi false
):
{% if var is sameas(false) %}
{# do something %}
{% endif %}
isset()
işlevinden farklı olarak, bir değişken tanımlanmışsa ve değeri null is defined
ise geri döner true
.
is_ sameas
olmalıdır {% if var is same as(false) %}
değil {% if var is sameas(false) %}
bakın Doc url => twig.symfony.com/doc/2.x/tests/sameas.html
Dalda varsayılan değerler nasıl ayarlanır: http://twig.sensiolabs.org/doc/filters/default.html
{{ my_var | default("my_var doesn't exist") }}
Veya null olduğunda görüntülenmesini istemiyorsanız:
{{ my_var | default("") }}
undefined or empty
ve arasında ayrım yapar null
mı?
Herhangi bir varsayım olmadan cevap:
{% if var is null %}
Ancak bu yalnızca var
tam olarak doğruysa NULL
ve değerlendirilen başka bir değer değilse false
(sıfır, boş dize ve boş dizi gibi) geçerli olacaktır. Ayrıca, var
tanımlanmamışsa bir hataya neden olacaktır . Daha güvenli bir yol:
{% if var is not defined or var is null %}
kısaltılabilir:
{% if var|default is null %}
default
Filtreye bir bağımsız değişken sağlamazsanız , bunun varsayıldığı varsayılır NULL
(bir tür varsayılan varsayılan). Yani bir değişkenin boş olup olmadığını kontrol etmek için en kısa ve en güvenli yol (biliyorum) (boş, yanlış, boş dize / dizi, vb.):
{% if var|default is empty %}
Yapabileceğini sanmıyorum. Bunun nedeni, bir değişken dal şablonunda tanımlanmamışsa (ayarlanmadıysa) NULL
veya none
(dal terimleriyle) gibi görünmesidir . Bu şablonda meydana gelen kötü erişim hataları bastırmak için eminim.
Twig ( ===
) ' de bir "kimlik" bulunmaması nedeniyle yapabileceğiniz en iyi şey budur
{% if var == null %}
stuff in here
{% endif %}
Bunun anlamı:
if ((isset($context['somethingnull']) ? $context['somethingnull'] : null) == null)
{
echo "stuff in here";
}
Senin adresinden iyi olursa hangi tür hokkabazlık , araçlar gibi işler o 0
, ''
, FALSE
, NULL
, ve tanımlanmamış bir var da bu ifade doğru yapacaktır.
Benim önerim kimliğin Twig'e uygulanmasını istemek.
{if var is none}
ve PHP eşdeğeri nedir?
{% if abcxyz is none %}
olur if (isset($context["abcxyz"])) { $_abcxyz_ = $context["abcxyz"]; } else { $_abcxyz_ = null; }
if ((null === $_abcxyz_)) { echo "hi"; }
. Temelde değer tanımsız veya null ise, doğru olacaktır.
{% if var is empty %}
twig.sensiolabs.org/doc/tests/empty.html PHP çevirir if (empty($var))
bir Falsey değerine karşılık değerlendirir (yani !isset, null, 0, array(), "", false, "0", 0.0
) php.net/manual/en/function.empty.php You yapabilirsiniz {% if var is same as(var) %}
kimlik için de kullanın ( ===
). 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
.
{% if var is not null %}