Konstruk apa yang harus saya gunakan untuk memeriksa apakah suatu nilai NULL dalam templat Ranting?
php
twig
short-circuiting
Halus
sumber
sumber
{% if var is not null %}
isset()
fungsi PHP ,is defined
akan kembalitrue
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
Atau jika Anda tidak ingin ditampilkan ketika nol:
sumber
undefined or empty
dannull
?Tanpa asumsi apapun jawabannya adalah:
Tetapi ini hanya akan benar jika
var
tepatNULL
, dan bukan nilai lain yang mengevaluasifalse
(seperti nol, string kosong dan array kosong). Selain itu, akan menyebabkan kesalahan jikavar
tidak didefinisikan. Cara yang lebih aman adalah:yang dapat disingkat menjadi:
Jika Anda tidak memberikan argumen ke
default
filter, itu mengasumsikanNULL
(semacam default default). Jadi cara terpendek dan teraman (saya tahu) untuk memeriksa apakah suatu variabel kosong (null, false, string / array kosong, dll):sumber
Saya pikir kamu tidak bisa. Ini karena jika suatu variabel tidak terdefinisi (tidak disetel) dalam templat ranting, sepertinya
NULL
ataunone
(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 lakukanYang diterjemahkan menjadi:
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.
sumber
{if var is none}
dan apa itu setara PHP?{% if abcxyz is none %}
menjadiif (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.none
merupakan alias untuknull
ref .{% if var is empty %}
twig.sensiolabs.org/doc/tests/empty.html yang diterjemahkan ke PHPif (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.htmlsumber
if var is not null
.Anda juga dapat menggunakan satu baris untuk melakukan itu:
sumber
Anda dapat menggunakan kode berikut untuk memeriksa apakah
sumber
Juga jika variabel Anda adalah ARRAY , ada beberapa opsi juga:
ATAU
Ini hanya akan berfungsi jika array
is defined
AND AndaNULL
sumber