检查数组值是否设置为null

时间:2013-07-20 21:56:51

标签: php arrays isset isnull

如何检查数组变量

$a = array('a'=>1, 'c'=>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:...”错误?

2 个答案:

答案 0 :(得分:39)

使用array_key_exists()代替isset(),因为如果变量为isset()false将返回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'; } } } key存在于数组中:

{{1}}

答案 1 :(得分:0)

您可以通过引用传递它:

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');

不应发出通知

isset会在空值上返回false。您可以尝试使用array_key_exists