Salah satu penyebab error paling umum bagi pemula PHP adalah mengakses variabel atau elemen array yang belum ada, memunculkan peringatan “Undefined index”. Dua fungsi penjaga, isset() dan empty(), mencegah masalah ini. Artikel ini membahas cara menggunakan isset dan empty di PHP beserta perbedaannya.
isset() vs empty()
<?php
$a = "";
$b = "Halo";
// isset: apakah variabel ada dan bukan null?
var_dump(isset($a)); // true (ada, meski kosong)
// empty: apakah variabel dianggap kosong?
var_dump(empty($a)); // true ("" dianggap kosong)
var_dump(empty($b)); // false
?>
| Nilai | isset() | empty() |
|---|---|---|
| “Halo” | true | false |
| “” (kosong) | true | true |
| 0 | true | true |
| null | false | true |
| tidak dideklarasikan | false | true |
Contoh Kasus: Memproses Data Form dengan Aman
<?php
if (!empty($_POST["nama"])) {
$nama = trim($_POST["nama"]);
echo "Halo, " . htmlspecialchars($nama);
} else {
echo "Nama wajib diisi";
}
?>
Menggunakan !empty() memastikan input tidak hanya ada, tetapi juga tidak kosong.
Jebakan: Angka Nol
Hati-hati, empty() menganggap angka 0 dan string "0" sebagai kosong. Untuk field jumlah yang boleh bernilai 0, gunakan isset() saja:
<?php
$jumlah = "0";
if (isset($jumlah) && $jumlah !== "") {
echo "Jumlah: " . $jumlah; // tetap tampil untuk 0
}
?>
Operator Null Coalescing (??)
<?php $hal = $_GET["halaman"] ?? "beranda"; // default bila tidak ada ?>
Kesimpulan
Gunakan isset() untuk memastikan variabel ada, dan empty() untuk memeriksa nilai kosong. Waspadai bahwa 0 dianggap kosong oleh empty(). Operator ?? memberi cara ringkas menyediakan nilai default.
Referensi: untuk penjelasan lebih mendalam, kunjungi dokumentasi resmi PHP (php.net).

