PHP's Unexpected NULL: When Empty Strings Deceive
Dalam PHP, apabila membandingkan pembolehubah kepada NULL menggunakan operator kesamaan ==, ia adalah penting untuk memahami tingkah laku halus yang mungkin tidak sejajar dengan jangkaan biasa. Ini amat relevan apabila berurusan dengan rentetan kosong.
Pertimbangkan kod berikut:
<code class="php">$a = ''; if ($a == NULL) { echo 'is null'; }</code>
Anehnya, coretan kod ini akan mengeluarkan "ialah batal", yang mungkin kelihatan berlawanan dengan intuisi bagi seseorang yang terbiasa dengan konsep rentetan kosong adalah berbeza daripada NULL dalam kebanyakan bahasa pengaturcaraan.
Sebab bagi tingkah laku ini terletak pada fakta bahawa PHP menganggap NULL bersamaan bukan sahaja nilai NULL lain tetapi juga palsu, 0, rentetan kosong dan tatasusunan kosong apabila menggunakan operator ==. Ini bermakna syarat $a == NULL menilai kepada benar walaupun $a ialah rentetan kosong dan bukannya nilai NULL yang jelas.
Untuk membetulkan isu ini dan menyemak NULL secara tepat, anda harus beralih kepada menggunakan pengendali perbandingan yang ketat ===. Kod yang diubah suai ini akan dinilai dengan betul kepada palsu, mengelakkan keluaran "adalah null" yang tidak dijangka:
<code class="php">if ($a === NULL) { echo 'is null'; }</code>
Oleh itu, apabila ingin menentukan sama ada pembolehubah sama dengan NULL dalam PHP, menggunakan operator === adalah penting. Perbezaan ini memastikan ketepatan dalam perbandingan anda dan menghalang sebarang kejutan yang tidak dijangka supaya rentetan kosong tidak lagi menyamar sebagai NULL.
Atas ialah kandungan terperinci Mengapa String Kosong Sama NULL dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!