检查数组值是否已设置且为空

2022-08-30 16:32:23

如何检查数组变量

$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'] 是否为空,以及是否存在$a['b'] 而没有“PHP 注意:...”错误?


答案 1

使用 array_key_exists() 而不是 ,因为如果变量为 ,则将返回,而仅检查数组中是否存在键:isset()isset()falsenullarray_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';
        }
    }
}

答案 2

您可以通过引用来传递它:

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

不予通知

但将返回空值。您可以尝试改用issetfalsearray_key_exists