by shigemk2

当面は技術的なことしか書かない

array_key_exists() vs isset()

PHP: array_key_exists - Manual
isset() 関数にご用心! ( #phpadvent2011 Day 17 ) - A Small, Good Thing - diary

特にissetの挙動に注意すること。

isset() は NULL 値を持つ配列キーに対して TRUE を返さない。
一方、array_key_exists() は TRUE を返す。

<?php
$search_array = array('first' => null, 'second' => 4);

// false を返します
if(!isset($search_array['first'])) print_r("hoge\n");


// true を返します
if(array_key_exists('first', $search_array)) print_r("bar\n");
?>