配列インデックス存在するか、nullかどうかを確認する方法はありますか? isset()
は、インデックスが存在しないか存在しているがnullであるかを通知しません。 isset($array[$index]) || is_null($array[$index])
を実行すると、インデックスが存在しないとis_nullがクラッシュするため、機能しません。
これを確認するにはどうすればよいですか?また、nullに設定されているかどうかに関係なく、何かが存在するかどうかだけをチェックする方法はありますか?
関数 array_key_exists() はそれを行うことができ、 property_exists() はオブジェクトに加えて、Vineet1982が言ったことを可能にします。ご協力いただきありがとうございます。
これは非常に良い質問です。これにはget_defined_vars()を使用できます。
$foo = NULL;
$a = get_defined_vars();
if (array_key_exists('def', $a)) {
// Should evaluate to FALSE
};
if (array_key_exists('foo', $a)) {
// Should evaluate to TRUE
};
これで問題が解決します
最も単純な定義:http://php.net/manual/en/function.array-key-exists.php
<?php
$array=array('raja'=>'value', 'john'=>'value2');
$var='raja';
echo array_key_exists($var, $array);
?>