Rumah >pembangunan bahagian belakang >tutorial php >Mengapa Saya Menggunakan Konstruk Bahasa kosong() Lebih daripada isset() dalam PHP dan Anda Harus Juga
Apabila membangun dalam PHP, pengendalian semakan pembolehubah dengan berkesan adalah penting untuk memastikan kod yang mantap dan bebas ralat. Dua binaan bahasa yang kerap digunakan untuk tujuan ini ialah kosong() dan isset(). Walau bagaimanapun, dalam banyak kes, memilih empty() mungkin lebih berfaedah daripada isset(), terutamanya kerana empty() merangkumi hampir semua senario yang isset() lakukan, bersama-sama dengan semakan tambahan. Artikel ini akan mempertikaikan mengapa lebih baik menggunakan empty() secara konsisten dalam PHP dan akan menunjukkannya dengan berbilang contoh kod.
Sebelum mendalami secara spesifik, mari kita jelaskan perkara yang dilakukan oleh binaan bahasa ini:
isset(): Konstruk bahasa ini menyemak sama ada pembolehubah ditetapkan dan bukan NULL. Ia mengembalikan benar jika pembolehubah wujud dan nilainya bukan NULL; jika tidak, ia kembali palsu.
$var = 0; echo isset($var); // Outputs: 1 (true)
kosong(): Konstruk bahasa ini menentukan sama ada pembolehubah dianggap "kosong". Pembolehubah dianggap kosong jika ia tidak wujud atau jika nilainya sama dengan palsu. empty() mengembalikan benar jika pembolehubah kosong mengikut syarat seperti yang dinyatakan sebelum ini; jika tidak, ia kembali palsu.
$var = 0; echo empty($var); // Outputs: 1 (true)
Kelebihan utama menggunakan empty() berbanding isset() terletak pada keupayaannya untuk mengendalikan berbilang semakan serentak. empty() akan menyemak sama ada pembolehubah ditetapkan dan jika nilainya kosong ("", 0, 0.0, "0", null, false dan tatasusunan kosong). Ini menghapuskan keperluan untuk menggunakan kedua-dua isset() dan semakan nilai secara berasingan, mengurangkan kerumitan kod dan kemungkinan ralat.
$input = $_POST['data'] ?? ''; // Using isset() if (isset($input) && $input !== '') { echo "Input is set and not empty."; } else { echo "Input is not set or empty."; } // Using empty() if (!empty($input)) { echo "Input is set and not empty/falsy."; } else { echo "Input is not set or empty/falsy."; }
Dalam contoh di atas, empty() memudahkan semakan dengan menyatukannya ke dalam satu keadaan.
Apabila bekerja dengan tatasusunan, terutamanya dengan kunci yang mungkin wujud atau tidak, empty() amat berguna untuk mengelakkan notis tentang indeks yang tidak ditentukan.
$data = ['username' => 'JohnDoe']; // Using isset() if (isset($data['username']) && $data['username'] !== '') { echo "Username is set and not empty."; } else { echo "Username is missing or empty."; } // Using empty() if (!empty($data['username'])) { echo "Username is set and not empty/falsy."; } else { echo "Username is missing or empty/falsy."; }
Apabila menyemak bendera boolean, terutamanya yang mungkin tidak ditetapkan, blank() boleh mengelakkan semakan bersyarat tambahan.
$options = ['enabled' => false]; // Using isset() if (isset($options['enabled']) && $options['enabled']) { echo "Feature is enabled."; } else { echo "Feature is disabled."; } // Using empty() if (!empty($options['enabled'])) { echo "Feature is enabled."; } else { echo "Feature is disabled."; }
Dalam PHP, penggunaan empty() selalunya lebih cekap daripada isset() kerana ia menyemak secara menyeluruh sama ada pembolehubah ditetapkan dan mempunyai nilai bukan palsu. Ini menjadikannya alat yang sangat baik untuk mengurangkan verbositi dan kerumitan kod sambil memastikan keteguhan pemeriksaan. Walaupun terdapat kes tertentu di mana isset() diperlukan seperti apabila membezakan antara nilai palsu, batal dan tidak ditetapkan. secara umum, empty() menyediakan alternatif yang mudah dan berkuasa untuk kebanyakan kes penggunaan.
Atas ialah kandungan terperinci Mengapa Saya Menggunakan Konstruk Bahasa kosong() Lebih daripada isset() dalam PHP dan Anda Harus Juga. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!