Cara yang tepat untuk memeriksa apakah kunci array ada adalah dengan fungsi array_key_exists()
Perbedaannya adalah ketika Anda memilikinya $_POST['variable'] = nullberarti kunci itu ada dan telah dikirim tetapi nilainya null
Opsi lainnya adalah isset()yang akan memeriksa apakah kunci array ada dan jika sudah disetel
Opsi terakhir adalah menggunakan empty()yang akan memeriksa apakah kunci array ada jika disetel dan jika nilai tidak dianggap kosong.
Contoh:
$arr = [
'a' => null,
'b' => '',
'c' => 1
];
array_key_exists('a', $arr); // true
isset($arr['a']); // false
empty($arr['a']); // true
array_key_exists('b', $arr); // true
isset($arr['b']); // true
empty($arr['b']); // true
array_key_exists('c', $arr); // true
isset($arr['c']); // true
empty($arr['c']); // false
Mengenai pertanyaan Anda
Cara yang tepat untuk memeriksa apakah nilai dikirim adalah dengan menggunakan array_key_exists () dengan metode pemeriksaan permintaan
if ($_SERVER['REQUEST_METHOD'] == 'POST' && array_key_exists('fromPerson', $_POST)
{
// logic
}
Tetapi ada beberapa kasus yang bergantung pada logika Anda di mana isset()dan empty()bisa menjadi baik juga.
empty()adalah tidak benar untuk pilihan # 1, karena dalam php, string'0'setara denganfalse- danempty()kembalitrueuntuk semua nilai setara dengan palsu . Jadi dengan menggunakanempty, kode akan melewatkan pencetakan jika nilainya adalah'0'. Jika Anda ingin mengecualikan string kosong, lihat jawaban Augustus.