Rumah > pembangunan bahagian belakang > tutorial php > Mengapakah `$a == NULL` menilai kepada benar apabila `$a` ialah rentetan kosong dalam PHP?

Mengapakah `$a == NULL` menilai kepada benar apabila `$a` ialah rentetan kosong dalam PHP?

Linda Hamilton
Lepaskan: 2024-11-04 13:31:02
asal
515 orang telah melayarinya

Why does `$a == NULL` evaluate to true when `$a` is an empty string in PHP?

NULL dalam PHP: Apabila Rentetan Kosong Bukan Nol

Pertimbangkan kod PHP berikut:

<code class="php">$a = '';
if($a == NULL) {
  echo 'is null';
}</code>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan