Rumah > pembangunan bahagian belakang > tutorial php > Mengapakah PHP melaporkan rentetan kosong sebagai NULL apabila menggunakan operator ==?

Mengapakah PHP melaporkan rentetan kosong sebagai NULL apabila menggunakan operator ==?

Barbara Streisand
Lepaskan: 2024-11-04 00:40:30
asal
1043 orang telah melayarinya

Why does PHP report an empty string as NULL when using the == 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>
Salin selepas log masuk

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

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!

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