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

Susan Sarandon
Lepaskan: 2024-10-22 20:55:36
asal
378 orang telah melayarinya

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

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

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.";
}
Salin selepas log masuk

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.";
}
Salin selepas log masuk

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.";
}
Salin selepas log masuk

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!

sumber:dev.to
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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!