Rumah > pembangunan bahagian belakang > tutorial php > Mengapa Membandingkan String dengan 0 dalam PHP Menghasilkan Keputusan yang Tidak Dijangka?

Mengapa Membandingkan String dengan 0 dalam PHP Menghasilkan Keputusan yang Tidak Dijangka?

Barbara Streisand
Lepaskan: 2024-12-07 11:44:11
asal
147 orang telah melayarinya

Why Does Comparing a String to 0 in PHP Produce Unexpected Results?

Rentetan Pelik kepada Keputusan Perbandingan Integer

Apabila membandingkan rentetan kepada integer, beberapa keputusan yang tidak dijangka boleh berlaku disebabkan oleh peraturan paksaan jenis PHP. Dalam contoh yang disediakan:

$test1 = "d85d1d81b25614a3504a3d5601a9cb2e";
$test2 = "3581169b064f71be1630b321d3ca318f";

if ($test1 == 0)
  echo "Test 1 is Equal!?";
if ($test2 == 0)
  echo "Test 2 is Equal!?";
Salin selepas log masuk

Ujian 1 berjaya kerana rentetan "d85d1d81..." tidak mengandungi data berangka yang sah, jadi ia ditafsirkan sebagai 0.

Walau bagaimanapun, Ujian 2 gagal kerana rentetan "3581169b..." mengandungi data berangka yang sah (awal "3581169"). Mengikut peraturan penukaran PHP, bahagian awal ini digunakan untuk menentukan nilai angka, iaitu bukan 0.

Manual PHP menerangkan bahawa rentetan dinilai seperti berikut:

  • Jika ia mengandungi '.', 'e' atau 'E', ia adalah apungan.
  • Jika tidak, ia ialah integer.
  • Jika ia bermula dengan data berangka yang sah, itulah nilainya.
  • Jika tidak, nilainya ialah 0.

Dalam kes $ test2, "3581169" awal ialah data berangka yang sah, jadi nilainya bukan 0 dan perbandingannya gagal.

Atas ialah kandungan terperinci Mengapa Membandingkan String dengan 0 dalam PHP Menghasilkan Keputusan yang Tidak Dijangka?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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