Rumah  >  Artikel  >  pembangunan bahagian belakang  >  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
Linda Hamiltonasal
2024-11-04 13:31:02492semak imbas

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>

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!

Kenyataan:
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