Dewi Lestari
dewilestari 1 tahun yang lalu
1.6k 3 PHP

Bagaimana cara mengatasi error undefined array key di PHP

Halo semua, Saya baru saja migrasi ke PHP 8 dan tiba-tiba banyak warning muncul di log seperti ini:

Warning: Undefined array key "username" in login.php on line 5
Padahal sebelumnya di PHP 7 tidak pernah muncul warning seperti ini. Biasanya saya akses seperti biasa:

$username = $_POST['username'];
Apa yang berubah di PHP 8 sehingga warning ini jadi lebih sensitif? Dan bagaimana cara terbaik untuk menghindari error ini? Terima kasih ?

2 Jawaban

Zaki Fauzan
zakifz1 tahun yang laluJawaban Terbaik
Di PHP 8, akses ke array dengan key yang tidak ada akan menimbulkan warning, bukan notice lagi seperti di PHP 7. Untuk menghindarinya, kamu harus selalu cek dulu apakah key tersebut ada. Contoh:

if (isset($_POST['username'])) {
  $username = $_POST['username'];
} else {
  $username = '';
}
Atau lebih singkat:

$username = $_POST['username'] ?? '';
Gunakan operator null coalescing (`??`) atau `isset()` agar kode lebih aman dan bersih dari warning.
0
Tania Oktaviani
taniaokta1 tahun yang lalu
Saya biasanya bungkus semua input dalam fungsi helper misalnya:

function input($key) {
  return $_POST[$key] ?? '';
}
Jadi tiap akses bisa lebih aman: `$username = input('username');`
0
Dinda Permata
dindaprm1 tahun yang lalu
Kamu juga bisa aktifkan error reporting hanya untuk level tertentu di dev, atau matikan warning di production dengan:

error_reporting(E_ALL & ~E_WARNING);
Tapi ini hanya solusi sementara, sebaiknya tetap validasi key array dengan benar.
0
Silahkan Login untuk menjawab.

Top Coder

Nadia Putri
nadiaputri
630 Point
Laras Ayu
larasayu
565 Point
Arif Wibowo
arifwbw
520 Point
Aulia Rizki
auliarzk
515 Point
Rizky Hidayat
rizkyhdyt
480 Point
Ilham Nurdin
ilhamnrdn
475 Point