Jawaban:
Tergantung pada apa yang Anda butuhkan:
is null
memeriksa apakah nilainya null
:
{% if var is null %}
{# do something #}
{% endif %}
is defined
memeriksa apakah variabel didefinisikan:
{% if var is not defined %}
{# do something #}
{% endif %}
Selain itu is sameas
tes, yang melakukan perbandingan ketat dua nilai, mungkin menarik untuk memeriksa nilai selain null
(seperti false
):
{% if var is sameas(false) %}
{# do something %}
{% endif %}
isset()
fungsi PHP , is defined
akan kembali true
jika variabel didefinisikan dan nilainya nol.
is_ sameas
boleh melihat Doc url => twig.symfony.com/doc/2.x/tests/sameas.html{% if var is same as(false) %}
{% if var is sameas(false) %}
Cara mengatur nilai default di ranting: http://twig.sensiolabs.org/doc/filters/default.html
{{ my_var | default("my_var doesn't exist") }}
Atau jika Anda tidak ingin ditampilkan ketika nol:
{{ my_var | default("") }}
undefined or empty
dan null
?
Tanpa asumsi apapun jawabannya adalah:
{% if var is null %}
Tetapi ini hanya akan benar jika var
tepat NULL
, dan bukan nilai lain yang mengevaluasi false
(seperti nol, string kosong dan array kosong). Selain itu, akan menyebabkan kesalahan jika var
tidak didefinisikan. Cara yang lebih aman adalah:
{% if var is not defined or var is null %}
yang dapat disingkat menjadi:
{% if var|default is null %}
Jika Anda tidak memberikan argumen ke default
filter, itu mengasumsikan NULL
(semacam default default). Jadi cara terpendek dan teraman (saya tahu) untuk memeriksa apakah suatu variabel kosong (null, false, string / array kosong, dll):
{% if var|default is empty %}
Saya pikir kamu tidak bisa. Ini karena jika suatu variabel tidak terdefinisi (tidak disetel) dalam templat ranting, sepertinya NULL
atau none
(dalam istilah ranting). Saya cukup yakin ini untuk menekan kesalahan akses buruk dari yang terjadi di template.
Karena kurangnya "identitas" di Twig ( ===
) ini adalah yang terbaik yang dapat Anda lakukan
{% if var == null %}
stuff in here
{% endif %}
Yang diterjemahkan menjadi:
if ((isset($context['somethingnull']) ? $context['somethingnull'] : null) == null)
{
echo "stuff in here";
}
Yang jika Anda baik di Anda tipe juggling , berarti bahwa hal-hal seperti 0
, ''
, FALSE
,NULL
, dan var terdefinisi akan juga membuat pernyataan itu benar.
Saran saya adalah meminta identitas untuk diimplementasikan ke dalam Ranting.
{if var is none}
dan apa itu setara PHP?
{% if abcxyz is none %}
menjadi if (isset($context["abcxyz"])) { $_abcxyz_ = $context["abcxyz"]; } else { $_abcxyz_ = null; }
if ((null === $_abcxyz_)) { echo "hi"; }
. Jadi pada dasarnya jika nilainya tidak terdefinisi atau nol, itu akan benar.
{% if var is empty %}
twig.sensiolabs.org/doc/tests/empty.html yang diterjemahkan ke PHP if (empty($var))
yang mengevaluasi terhadap nilai falsey ( !isset, null, 0, array(), "", false, "0", 0.0
) php.net/manual/en/function.empty.php Anda dapat juga digunakan {% if var is same as(var) %}
untuk identitas ( ===
). 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 %}