Hi!
Working on cleaning up the spec, I've discovered that in PHP 5.6 and
below conversion of NAN
to int produces unexpected result of
-9223372036854775808 (on 64-bit, 32-bit probably different). In PHP 7,
it produces expected 0. See e.g.: http://3v4l.org/RKQuu
Same weirdness is for INF
and -INF which sometimes produce 0 (e.g. on my
local machine) and sometimes -9223372036854775808 - e.g.
http://3v4l.org/ivX1D
My question is: should we backport code from PHP 7 that checks for
infinity/nan and put it into 5.6? Or it's not worth it and it's ok for
5.6 to return random weird stuff there? (I know it's not exactly random
and there's a reason why it's that number but it looks that way).
Stas Malyshev
smalyshev@gmail.com
My question is: should we backport code from PHP 7 that checks for
infinity/nan and put it into 5.6? Or it's not worth it and it's ok for
5.6 to return random weird stuff there? (I know it's not exactly random
and there's a reason why it's that number but it looks that way).
While I can't imagine many people would stumble over this (as apparently
there was no bug report) it could be a tricky one if you're not extra
paranoid when working with INF, I don't think it's worth changing this
behaviour so long after 5.6.0 was released. Good that it's fixed in 7
though.
It should absolutely be documented (and I still can't fathom why
searching for INF
on the website only gives me function results and not
a direct hit for a 1:1 match on a pre-defined constant in core, but
let's not start this discussion.)
Greetings,
Florian