How to know if a PHP variable exists, even if its value is NULL?
Asked Answered
O

2

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

How can I distinguish $a, which exists but has a value of NULL, from the “really non-existent” $b?

Oversupply answered 6/10, 2011 at 12:50 Comment(5)
Why? Just initialize your variables properly and you know which one exists and which doesn'tChafee
I wouldn't even use isset. Initialize your variables so you can assume they exist.Baptism
#418566Serieswound
@KingCrunch: Theorical question or specific edge case, either ways the question was not about if it's appropriate or not. Please stay constructive.Oversupply
@Insterstellar_Coder: Thanks, I had not found that topic :) ( Even if I don't really like the _GLOBAL solution )Oversupply
A
11

Use the following:

$a = NULL;
var_dump(true === array_key_exists('a', get_defined_vars()));
Acanthaceous answered 6/10, 2011 at 12:53 Comment(0)
S
5

It would be interesting to know why you want to do this, but in any event, it is possible:

Use get_defined_vars, which will contain an entry for defined variables in the current scope, including those with NULL values. Here's an example of its use

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

This displays

array(2) {
  ["a"] => int(1)
  ["b"] => NULL
}
Spectrohelioscope answered 6/10, 2011 at 12:55 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.