Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa Saya Menggunakan Konstruk Bahasa kosong() Lebih daripada isset() dalam PHP dan Anda Harus Juga

Mengapa Saya Menggunakan Konstruk Bahasa kosong() Lebih daripada isset() dalam PHP dan Anda Harus Juga

Susan Sarandon
Susan Sarandonasal
2024-10-22 20:55:36379semak imbas

Why I Use the empty() Language Construct More than isset() in PHP and You Should Too

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.

Memahami isset() dan empty()

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)

Mengapa Saya Suka kosong() Lagi?

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.

Contoh Kod 1: Menyemak Nilai Lalai

$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.

Contoh Kod 2: Bekerja dengan Tatasusunan

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.";
}

Contoh Kod 3: Pemeriksaan Boolean

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.";
}

Kesimpulan

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!

Kenyataan:
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