PHPでキーがあるかの判定にissetはよくない

PHPでキーがあるかというときにissetを使ってたところがあってちょっとはまったのでメモ

issetだと

$arr = ['1' => null, '2' => 'second']
if (isset($arr['1'])) {
  // falseになり
} else {
  // こっちが実行される
}

値がnullとか0とかをfalseにされてしまいます
array_key_existsを使うのがいいです

$arr = ['1' => null, '2' => 'second']
if (array_key_exists($arr['1'])) {
  // こっちが実行される
} else {
  // 
}

keyがあるかは array_key_exists を使いましょう

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください