如何知道PHP变量是否存在,即使其值为NULL?

时间:2011-10-06 12:50:18

标签: php null isset

$a = NULL;
$c = 1;
var_dump(isset($a)); // bool(false)
var_dump(isset($b)); // bool(false)
var_dump(isset($c)); // bool(true)

如何区分$a(存在但值NULL)与“真的不存在”$b

2 个答案:

答案 0 :(得分:8)

使用以下内容:

$a = NULL;
var_dump(true === array_key_exists('a', get_defined_vars()));

答案 1 :(得分:4)

知道你为什么要这样做会很有趣,但无论如何,它是可能的:

使用get_defined_vars,它将包含当前作用域中已定义变量的条目,包括具有NULL值的条目。这是一个使用它的例子

function test()
{
    $a=1;
    $b=null;

    //what is defined in the current scope?
    $defined= get_defined_vars();

    //take a look...
    var_dump($defined);

    //here's how you could test for $b
    $is_b_defined = array_key_exists('b', $defined);
}

test();

显示

array(2) {
  ["a"] => int(1)
  ["b"] => NULL
}