Yanıtlar:
Tam olarak neye ihtiyacınız olduğuna bağlı olarak:
is nulldeğ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 sameasiki 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 definedise geri döner true.
is_ sameasolmalı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 emptyve arasında ayrım yapar nullmı?
Herhangi bir varsayım olmadan cevap:
{% if var is null %}
Ancak bu yalnızca vartam olarak doğruysa NULLve 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, vartanı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 %}
defaultFiltreye 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) NULLveya 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 %}