array_key_exists
はキーがあるかをチェック。
isset
は変数がセットされていること、そして NULL でないことを検査する。(array以外にも使用できる)
$a = array('key1' => 'hoge', 'key2' => null);
var_dump(isset($a['key1'])); // true
var_dump(array_key_exists('key1', $a)); // true
var_dump(isset($a['key2'])); // false
var_dump(array_key_exists('key2', $a)); // true
isset
は変数がセットされていることを確認するので、変数が定義されていなくてもPHP Noticeが発生しない。
// $bが定義されていない
isset($b[4]);
array_key_exists('key2', $b); //PHP Notice, Warning発生