web-dev-qa-db-ja.com

PHP-配列インデックスが存在するか、nullかどうかを確認する

配列インデックス存在するか、nullかどうかを確認する方法はありますか? isset()は、インデックスが存在しないか存在しているがnullであるかを通知しません。 isset($array[$index]) || is_null($array[$index])を実行すると、インデックスが存在しないとis_nullがクラッシュするため、機能しません。

これを確認するにはどうすればよいですか?また、nullに設定されているかどうかに関係なく、何かが存在するかどうかだけをチェックする方法はありますか?

20
Virus721

関数 array_key_exists() はそれを行うことができ、 property_exists() はオブジェクトに加えて、Vineet1982が言ったことを可能にします。ご協力いただきありがとうございます。

22
Virus721

これは非常に良い質問です。これには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
};

これで問題が解決します

9
Vineet1982

最も単純な定義: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);
?>
4
Teerath Kumar