web-dev-qa-db-ja.com

配列値が設定されており、nullかどうかを確認します

配列変数かどうかを確認する方法

$a = array('a'=>1, 'c'=>null);

設定されており、nullです。

function check($array, $key)
{
    if (isset($array[$key])) {
        if (is_null($array[$key])) {
            echo $key . ' is null';
        }
        echo $key . ' is set';
    }
}

check($a, 'a');
check($a, 'b');
check($a, 'c');

PHPで、$ a ['c']がnullかどうか、および$ a ['b']が「PHP Notice:...」エラーなしで存在するかどうかをチェックする関数を使用することは可能ですか? ?

18
Bartek Kosa

array_key_exists()の代わりに isset() を使用します。変数がfalseの場合、isset()nullを返すためです。 array_key_exists()は、配列にキーが存在するかどうかを確認するだけです。

function check($array, $key)
{
    if(array_key_exists($key, $array)) {
        if (is_null($array[$key])) {
            echo $key . ' is null';
        } else {
            echo $key . ' is set';
        }
    }
}
43
nickb