Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:60458 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 31402 invoked from network); 5 May 2012 12:22:02 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 5 May 2012 12:22:02 -0000 Authentication-Results: pb1.pair.com smtp.mail=ceo@l-i-e.com; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=ceo@l-i-e.com; sender-id=pass Received-SPF: pass (pb1.pair.com: domain l-i-e.com designates 67.139.134.202 as permitted sender) X-PHP-List-Original-Sender: ceo@l-i-e.com X-Host-Fingerprint: 67.139.134.202 o2.hostbaby.com FreeBSD 4.7-5.2 (or MacOS X 10.2-10.3) (2) Received: from [67.139.134.202] ([67.139.134.202:1947] helo=o2.hostbaby.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 31/20-30075-76B15AF4 for ; Sat, 05 May 2012 08:22:00 -0400 Received: (qmail 49354 invoked by uid 98); 5 May 2012 12:21:57 -0000 Received: from localhost by o2.hostbaby.com (envelope-from , uid 1013) with qmail-scanner-2.05 ( Clear:RC:1(127.0.0.1):. Processed in 0.040559 secs); 05 May 2012 12:21:57 -0000 Received: from localhost (HELO www.l-i-e.com) (127.0.0.1) by localhost with SMTP; 5 May 2012 12:21:57 -0000 Received: from webmail (SquirrelMail authenticated user ceo@l-i-e.com) by www.l-i-e.com with HTTP; Sat, 5 May 2012 07:21:57 -0500 Message-ID: Date: Sat, 5 May 2012 07:21:57 -0500 To: internals@lists.php.net User-Agent: SquirrelMail/1.4.21 [SVN] MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 (Normal) Importance: Normal Subject: Re: [PHP-DEV] [RFC] Allow non-variable arguments to empty() and isset() From: ceo@l-i-e.com ("Richard Lynch") On Fri, May 4, 2012 2:10 pm, Kris Craig wrote: > On Fri, May 4, 2012 at 11:48 AM, Richard Lynch wrote: > >> On Wed, May 2, 2012 4:43 am, Pierre Joye wrote: >> >>> empty() on the other hand, tests if something is empty, and only >> if >> >>> it >> >>> is empty. The result of an expression can be empty. >> >>> >> >> >> >> an expression can also have a value of null. >> > >> > And NULL is empty. No issue here. >> >> Expressions can also return "", 0, 0.0, "0", array() >> >> You really think those should all be empty? >> > > Unless I'm missing something here, aren't all those things already considered to be empty?? Here's what the PHP man page for empty() says: > > The following things are considered to be empty: > > - *""* (an empty string) > - *0* (0 as an integer) > - *0.0* (0 as a float) > - *"0"* (0 as a string) > - *NULL* > - *FALSE* > - *array()* (an empty array) > - *var $var;* (a variable declared, but without a value in a class) I am suggesting that some of those wouldn't make so much sense being "empty" in an expression. empty(2.0 - 1.9999999999999); Might not be 0.0, but that's not the point. For some not-empty values added or subtracted, more or less at the whims of digital float behave would or wouldn't be empty. Furthermore, empty on "0" was originally designed user input via GET/POST so that an would be empty() -- brain cancer update: http://richardlynch.blogspot.com/search/label/brain%20tumor Donate: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=FS9NLTNEEKWBE -- brain cancer update: http://richardlynch.blogspot.com/search/label/brain%20tumor Donate: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=FS9NLTNEEKWBE