Bug #45712 [Csd->ReO]: $something == NaN returns true with 5.3, false with 5.2.*
| From: | philip@php.net | Date: | Thu, 26 May 2011 05:59:24 +0000 |
| Subject: | Bug #45712 [Csd->ReO]: $something == NaN returns true with 5.3, false with 5.2.* | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-160968@lists.php.net to get a copy of this message | ||
Edit report at http://bugs.php.net/bug.php?id=45712&edit=1
ID: 45712
Updated by: philip@php.net
Reported by: for-bugs at hnw dot jp
Summary: $something == NaN returns true with 5.3, false with
5.2.*
-Status: Closed
+Status: Re-Opened
Type: Bug
Package: Variables related
Operating System: *
PHP Version: 5.2CVS, 5.3CVS, 6CVS (2008-08-05)
Assigned To: tony2001
Block user comment: N
Private report: N
New Comment:
Reopening because the associated test tests INF as well. However, this
is about INF:
// 5.3.7-dev (and all past PHP versions, afaict)
$inf = pow(0,-2); var_dump($inf==$inf); var_dump($inf===$inf); // false
true
// 5.4.0-dev
$inf = pow(0,-2); var_dump($inf==$inf); var_dump($inf===$inf); // true
true
Please explain.
And @jwvdveer, it was indeed fixed (in 5.3) and made to return false.
Previous Comments:
------------------------------------------------------------------------
[2010-07-28 01:28:53] jwvdveer at gmail dot com
Please, reopen this bug. It's not working in PHP 5.3.3 on Windows
platform (released at 2010-07-21).
The behaviour of a comparison to NAN is the same as noted here.
It's not just a
me too, but this thread shouln't have been closed.
------------------------------------------------------------------------
[2008-08-07 08:36:33] tony2001@php.net
This bug has been fixed in CVS.
Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
http://snaps.php.net/.
Thank you for the report, and for helping us make PHP better.
------------------------------------------------------------------------
[2008-08-07 07:37:04] tony2001@php.net
I'm testing a patch for it.
------------------------------------------------------------------------
[2008-08-05 12:52:06] for-bugs at hnw dot jp
NaN is not exact number. So, NaN should not equals itself. Additionaly,
NaN == NaN is false in C. You can see behavior of C as follows.
$ cat nan.c
int main() {double d;d=(-1e300*1e300)/(1e300*1e300);if (d==d) return 1;
else return 2;}
$ gcc nan.c; ./a.out; echo $?
2
$
------------------------------------------------------------------------
[2008-08-05 12:33:17] jani@php.net
That $nan == $nan should be true. (like it is with 5.3)
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/bug.php?id=45712
--
Edit this bug report at http://bugs.php.net/bug.php?id=45712&edit=1