Rumah > Artikel > pembangunan bahagian belakang > Mengapakah PHP melaporkan rentetan kosong sebagai NULL apabila menggunakan operator ==?
Mengapa PHP Reporting NULL untuk Rentetan Kosong?
Dalam PHP, menggunakan operator == sebagai perbandingan boleh membawa kepada hasil yang tidak dijangka apabila berurusan dengan nilai kosong.
Pertimbangkan kod berikut:
<code class="php">$a = ''; if($a == NULL) { echo 'is null'; }</code>
Anehnya, kod ini akan mengeluarkan "adalah batal" walaupun $a adalah rentetan kosong.
Alasannya
Pengendali == melakukan paksaan jenis dan membandingkan nilai pelbagai jenis. Dalam kes ini, $a (rentetan kosong) ditukar kepada boolean yang setara, iaitu palsu. false dianggap bersamaan dengan NULL dalam PHP apabila menggunakan ==.
Penyelesaian
Untuk membandingkan dengan tepat untuk NULL, gunakan pengendali kesaksamaan yang ketat === dan bukannya = =.
<code class="php">if($a === NULL) { echo 'is null'; }</code>
Pengendali === melakukan perbandingan selamat jenis dan akan kembali benar hanya jika nilai adalah sama dalam kedua-dua nilai dan jenis.
Atas ialah kandungan terperinci Mengapakah PHP melaporkan rentetan kosong sebagai NULL apabila menggunakan operator ==?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!