Hello !

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 seen
bunchload of code that uses array_key_exists("foo", $array); rather
then isset($array["foo"]) 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[0]) return false if first argument has null value
        {
trigger_error('First argument of method ' . $method . '() must be defined', E_USER_ERROR);
        }
        ...
    }
}

$foo = new foo();
$foo->magicCallToMethod(null); // no error
$foo->magicCallToMethod(); // error

Best regards,
Fred

--
========================================================================
Frédéric Hardy : Architecte d'application/Admin. système/Ergonome
========================================================================

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to