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
559 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!

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