Re: Inconsistency of empty() and isset() ?
| From: | Ron Korving | Date: | Mon, 17 Apr 2006 12:53:30 +0000 |
| Subject: | Re: Inconsistency of empty() and isset() ? | ||
| References: | 1 2 3 4 5 6 7 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-22819@lists.php.net to get a copy of this message | ||
isset() does more than check the existance in a hash table, because this the
following is true:
$foo = null;
isset($foo); // returns false, even though $foo is initialized
echo $foo; // will not cause a NOTICE, because $foo is initialized
- Ron
""Richard Lynch"" <ceo@l-i-e.com> wrote in message
news:3516.209.254.223.2.1145240948.squirrel@www.l-i-e.com...
> On Sun, April 16, 2006 7:38 pm, Pierre wrote:
> > isset and empty share the same implementation, the only difference is
> > what they return (in short). They behave "the same", they should
> > continue do so if empty accept many arguments.
>
> Actually...
>
> Unless the docs are lying to me...
>
> empty() checks the contents of the value, and does something quite
> different based on the value found.
>
> isset() just plain checks in the hash table[s] if the variable has
> been assigned, and that's it.
>
> Plus, the meaning of empty() changed in some a way with "0" between
> versions 3 and 4, and then again with respect to objects with no
> properties between 4 and 5.
>
> isset() has never changed its meaning out from under me. :-)
>
> So, while the guts of the function may be the same in source, there's
> got to be some kind of flag or something going on for empty() to be
> checking all those values, no???
>
> --
> Like Music?
> http://l-i-e.com/artists.htm