如何检查数组变量
$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:...”错误?
答案 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