NULL dalam PHP: Apabila Rentetan Kosong Bukan Nol
Pertimbangkan kod PHP berikut:
<code class="php">$a = ''; if($a == NULL) { echo 'is null'; }</code>
Mengapakah ia mengeluarkan "adalah batal" apabila $a jelas merupakan rentetan kosong? Adakah ini pepijat?
Memahami Kesaksamaan dan Identiti
Kunci untuk memahami tingkah laku ini terletak pada perbezaan antara kesaksamaan (==) dan identiti (===) . Dalam PHP, == menyemak sama ada dua operan mempunyai nilai yang sama, manakala === menyemak sama ada ia mempunyai nilai dan jenis yang sama.
Dalam kod di atas, $a ialah rentetan kosong, yang merupakan palsu nilai. Dalam PHP, nilai palsu dianggap sama dengan tatasusunan NULL, false, 0 dan kosong. Oleh itu, $a == NULL menilai kepada benar.
Menggunakan === untuk Semak NULL
Untuk menyemak secara khusus sama ada pembolehubah adalah NULL, gunakan pengendali identiti (===):
<code class="php">if($variable === NULL) {...}</code>
Perhatikan tanda tiga sama dengan. Dengan menggunakan ===, anda memastikan pembolehubah itu bukan sahaja palsu, tetapi juga jenis NULL.
Kesimpulan
Rentetan kosong dalam PHP tidak dianggap NULL . Untuk menyemak NULL secara eksplisit, gunakan pengendali identiti (===). Perbezaan ini penting untuk memastikan perbandingan dan logik yang tepat dalam kod PHP anda.
Atas ialah kandungan terperinci Mengapakah `$a == NULL` menilai kepada benar apabila `$a` ialah rentetan kosong dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!