Mengesahkan Pembolehubah Integer dalam PHP: Mengelakkan Perangkap
Dalam PHP, mengesahkan sama ada pembolehubah memegang nilai integer boleh menjadi penting untuk memastikan integriti data semasa pembangunan. Walau bagaimanapun, menggunakan fungsi is_int() sahaja mungkin tidak selalu menghasilkan hasil yang tepat.
Satu salah tanggapan biasa berpunca daripada penggunaan is_int() dengan rentetan yang mengandungi aksara angka. Walaupun is_int() akan kembali benar untuk rentetan seperti "1", ia gagal mengesan rentetan bukan integer seperti "asdf", mengakibatkan andaian yang salah bahawa ia adalah integer.
Pendekatan Alternatif untuk Mengesahkan Integer
Untuk menyemak integer dalam PHP dengan pasti, pertimbangkan pilihan berikut:
FILTER_VALIDATE_INT
Fungsi filter_var() dengan FILTER_VALIDATE_INT penapis menyediakan kaedah yang teguh untuk mengesahkan integer. Ia mengembalikan palsu untuk nilai bukan integer, termasuk rentetan seperti "42" dan "a42".
if (filter_var($variable, FILTER_VALIDATE_INT) === false) { // Variable is not an integer. }
Perbandingan Hantaran
Dengan menghantar pembolehubah kepada integer dan kemudian membandingkannya dengan nilai asal, anda boleh mengesan bukan integer. Jika versi rentetan berbeza, ia menunjukkan nilai bukan integer.
if (strval($variable) !== strval(intval($variable))) { // Variable is not an integer. }
Pemeriksaan Jenis dengan ctype_digit
Fungsi ctype_digit() menyemak sama ada rentetan mengandungi hanya digit (0-9). Ia boleh digunakan untuk integer positif dan sifar. Walau bagaimanapun, ia tidak menyokong integer negatif atau integer yang disimpan sebagai rentetan.
if (!ctype_digit(strval($variable))) { // Variable is not an integer (positive or zero). }
Padanan Ungkapan Biasa
Ungkapan biasa menawarkan cara yang fleksibel untuk menyemak corak integer. Regex seperti ^-?d $ sepadan dengan integer positif dan negatif.
if (!preg_match('/^-?\d+$/', $variable)) { // Variable is not an integer. }
Dengan menggunakan kaedah alternatif ini, anda boleh menentukan dengan tepat sama ada pembolehubah dalam PHP sepadan dengan nilai integer, memastikan integriti anda data dan kebolehpercayaan kod anda.
Atas ialah kandungan terperinci Cara Mengesahkan Pembolehubah Integer dengan Amanah dalam PHP: Mengatasi Masalah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!