Как узнать, существует ли переменная PHP, даже если ее значение равно NULL? - PullRequest
6 голосов
/ 06 октября 2011
$a = NULL;
$c = 1;
var_dump(isset($a)); // bool(false)
var_dump(isset($b)); // bool(false)
var_dump(isset($c)); // bool(true)

Как отличить $a, который существует, но имеет значение NULL, от «действительно несуществующего» * ​​1004 *?

Ответы [ 2 ]

8 голосов
/ 06 октября 2011

Используйте следующее:

$a = NULL;
var_dump(true === array_key_exists('a', get_defined_vars()));
4 голосов
/ 06 октября 2011

Было бы интересно узнать, почему вы хотите это сделать, но в любом случае это возможно:

Использовать 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
}
...