issetの履歴

PHPのキーワード。requireと同じく、実は関数ではない。

issetはnull値かシンボルテーブルに登録されてない場合にfalseを返す。それ以外はtrue。

なので、!isset($a) と is_null($a)は同じこと。

http://www.cpa-lab.com/tech/097


以前、配列の場合にこれで引っ掛かった。配列にあるキーが登録されているかどうかを調べるためにissetは使えない。

$hoge = array('a' => null);
var_dump(isset($hoge['a'])); // false


キーがシンボルテーブルに登録されているかどうかを調べるには、array_key_existsを使う。

$hoge = array('a' => null);
var_dump(array_key_exists('a', $hoge)); // true