Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:22819 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 98377 invoked by uid 1010); 17 Apr 2006 12:57:06 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 98362 invoked from network); 17 Apr 2006 12:57:06 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 17 Apr 2006 12:57:06 -0000 X-Host-Fingerprint: 83.160.219.156 korving.demon.nl Received: from ([83.160.219.156:29857] helo=localhost.localdomain) by pb1.pair.com (ecelerity 2.0 beta r(6323M)) with SMTP id B1/A9-19715-1A093444 for ; Mon, 17 Apr 2006 08:57:05 -0400 Message-ID: To: internals@lists.php.net References: <2e24b1e00604150752g69acab4er1058771d9e60a352@mail.gmail.com> <4442CB1E.7050508@php.net><4442DAD8.1090607@dealnews.com> <3516.209.254.223.2.1145240948.squirrel@www.l-i-e.com> Date: Mon, 17 Apr 2006 14:53:30 +0200 Lines: 42 X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2800.1437 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1441 X-Posted-By: 83.160.219.156 Subject: Re: [PHP-DEV] Inconsistency of empty() and isset() ? From: r.korving@xit.nl ("Ron Korving") 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"" 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