Also, this is semantic change if the return result is not long (since before we asked to convert to long, now we ask to convert to double - and there could be objects that have long but not double conversion). Same with strings - comparison semantics for something like "-0.5" would change. Given that the docs explicitly say you *should not* return non-ints, I'm not sure we should be messing with it, but if we do, I'd suggest minimal change - like allowing floats and keeping int conversion for the rest (in that case, note should be added to docs that PHP would now have inconsistent behavior in different versions here).