dewilestari• 1 tahun yang lalu
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
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
taniaokta•1 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
dindaprm•1 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.