PHPのissetとarray_key_exists


先日の記事で書いたissetの挙動について、実は望む結果を返してくれる関数があります。
issetと異なりこれは配列用の関数なのですが、array_key_existsという関数です。
マニュアルにも、

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

とあります。
ですので、この関数を使うと、

$data = aray(
          'a' => 'hoge',
          'b' => NULL
          );
print (array_key_exists('a', $data)) ? "a:TRUE" : "a:FALSE";
print (array_key_exists('b', $data)) ? "b:TRUE" : "b:FALSE";
print (array_key_exists('c', $data)) ? "c:TRUE" : "c:FALSE";
を実行すると、
「a:TRUE」「b:TRUE」「c:FALSE」
が返ってきます。
私はこういう結果を求めていたのですよっ!

ただ、配列用なので配列でない変数には使えないのがネックです。
そういった関数はないのかしら・・・。
Tag

コメントを残す