Bisakah Anda membantu saya meningkatkan gaya pengkodean saya? :) Dalam beberapa tugas yang perlu saya periksa - apakah variabel kosong atau berisi sesuatu. Untuk mengatasi tugas ini, saya biasanya melakukan hal berikut.
Periksa - apakah variabel ini disetel atau tidak? Jika sudah disetel - saya periksa - kosong atau tidak?
<?php
$var = '23';
if (isset($var)&&!empty($var)){
echo 'not empty';
}else{
echo 'is not set or empty';
}
?>
Dan saya punya pertanyaan - haruskah saya menggunakan isset () sebelum empty () - apakah itu perlu? TIA!
Jawaban:
Itu tergantung apa yang Anda cari, jika Anda hanya ingin melihat apakah kosong, gunakan saja
empty
karena ia memeriksa apakah sudah disetel juga, jika Anda ingin tahu apakah sesuatu sudah disetel atau tidak digunakanisset
.Empty
memeriksa apakah variabel diset dan jika itu memeriksa untuk null, "", 0, dllIsset
cukup periksa apakah sudah disetel, bisa jadi apa saja yang bukan nullDengan
empty
, hal-hal berikut dianggap kosong:Dari http://php.net/manual/en/function.empty.php
Seperti yang disebutkan di komentar, kurangnya peringatan juga penting dengan empty ()
Kata Manual PHP
Mengenai isset
Kata Manual PHP
Kode Anda akan baik-baik saja seperti:
Sebagai contoh:
sumber
empty
: Ini tidak memunculkan peringatan ketika variabel yang diuji tidak ada. Itulah inti dari fungsi ini, jika tidak maka identik dengan== false
.isset
pada variabel null (dan yang ada) akan mengevaluasi kefalse
.Dalam kasus tertentu:
if ($var)
.Anda perlu menggunakan
isset
jika Anda tidak tahu apakah variabel tersebut ada atau tidak. Karena Anda menyatakannya pada baris pertama, Anda tahu itu ada, maka Anda tidak perlu, tidak, tidak boleh menggunakannyaisset
.Hal yang sama berlaku untuk
empty
, hanya ituempty
juga menggabungkan pemeriksaan untuk kebenaran nilainya.empty
setara dengan!isset($var) || !$var
dan!empty
setara denganisset($var) && $var
, atauisset($var) && $var == true
.Jika Anda hanya ingin menguji variabel yang seharusnya ada untuk kebenaran ,
if ($var)
cukup sempurna dan to the point.sumber
!empty is equivalent to isset($var) && $var
, itu akan luar biasa. Terima kasih @decezeAnda bisa menggunakan empty () - seperti yang terlihat di dokumentasi , itu akan mengembalikan false jika variabel tidak memiliki nilai.
Contoh di halaman yang sama:
Anda dapat menggunakan isset jika Anda hanya ingin tahu apakah itu bukan NULL. Jika tidak, tampaknya kosong () baik-baik saja untuk digunakan sendiri.
sumber
$var = null; isset( $var ) == true
.Berikut adalah output dari
isset()
danempty()
untuk 4 kemungkinan: tidak dideklarasikan, null, false, dan true.Anda akan melihat bahwa semua hasil 'isset' berlawanan dengan hasil 'kosong' kecuali untuk kasus
$b=false
. Semua nilai (kecuali null yang bukan nilai tetapi bukan nilai) yang dievaluasi ke false akan mengembalikan true saat diuji olehisset
dan salah saat diuji dengan 'kosong'.Jadi gunakan
isset()
saat Anda khawatir tentang keberadaan variabel. Dan gunakanempty
saat Anda menguji benar atau salah. Jika jenis sebenarnya dari hal-hal kekosongan, penggunaanis_null
dan===0
,===false
,===''
.sumber
Empty mengembalikan nilai true jika var tidak disetel. Tapi isset mengembalikan nilai true meskipun var tidak kosong.
sumber
Ini adalah contoh sederhana. Semoga membantu.
edit: ditambahkan
isset
jika variabel tidak didefinisikan seperti di atas, itu akan menyebabkan kesalahan, memeriksa untuk melihat apakah set pertama setidaknya akan membantu menghilangkan beberapa sakit kepala di jalan.sumber
strlen
di bawah nol? Saya ingin melihat tali itu.