[PHP-DEV] Detecting if a null variable exists?

On Fri, Jun 11, 2010 at 19:43, Brian Moon <br***@*oonspot.net> wrote:> Is it just me or are we missing a way in the language to check if a variable> that has been set to NULL exists or not?>> is_null() on an unset variable throws a NOTICE.> $var === null throws a notice.>> So, you have to use isset()? But, ah,>> $var = null;> if(isset($var))>> yields false.>> Is array_key_exists("var", $GLOBALS) the only solution to this problem?

This question creeps up every once in a while, and I have seenbunchload of code that uses array_key_exists("foo", $array); ratherthen isset($array) because of it.

I however have never seen a proper usecase..I tend to "initialize" my variables, and array keys, as null, so Inever have to do these kind of checks. And if you don't initializeyour variables, then you can turn of E_NOTICE if it bothers you.

[PHP-DEV] Detecting if a null variable exists?

Hello !Is it just me or are we missing a way in the language to check if avariablethat has been set to NULL exists or not?

is_null() on an unset variable throws a NOTICE.$var === null throws a notice.

So, you have to use isset()? But, ah,

$var = null;if(isset($var))

yields false.

Is array_key_exists("var", $GLOBALS) the only solution to this problem?This question creeps up every once in a while, and I have seenbunchload of code that uses array_key_exists("foo", $array); ratherthen isset($array) because of it.

I however have never seen a proper usecase..class foo { public function __call($method, $arguments) { // We MUST have at least ONE argument !if (array_key_exists(0, $arguments) === false) //isset($arguments) return false if first argument has null value{trigger_error('First argument of method ' . $method . '()must be defined', E_USER_ERROR);} ... }}

[PHP-DEV] Detecting if a null variable exists?

Frederic Hardy wrote:>> I however have never seen a proper usecase..>> class foo {> public function __call($method, $arguments)> {> // We MUST have at least ONE argument !> if (array_key_exists(0, $arguments) === false) //> isset($arguments) return false if first argument has null value

Why not simply if (count($arguments) == 0) ..which is simpler and clearer?

I agree with Hannes that most "usecases" should be solved differentlyanyway.