On Fri, Mar 13, 2015 at 10:31 PM, Levi Morrison <le...@php.net> wrote: > On Fri, Mar 13, 2015 at 8:50 PM, Rasmus Lerdorf <ras...@lerdorf.com> wrote: >> On Mar 14, 2015, at 13:37, Levi Morrison <le...@php.net> wrote: >>> It seems that `float -> bool` is always disallowed. If I am correct >>> `int -> bool` is permitted for all values (not just 0 and 1), which >>> means that floats which can be converted to integers without dataloss >>> should also be permitted to be booleans. If a specific float can be >>> converted to an int, and all ints can be converted to booleans, then >>> the transitive property should hold for that float to a bool. >> >> The problem there is what does "without dataloss" mean? At which precision >> do you consider there to be no dataloss? > > Ah, I reread part of the RFC. It appears `float -> int` is unchanged > from current. This only confuses me more, though. If int -> float is > permitted, and float -> int is permitted, I do not understand why > float -> bool is not permitted. > > Can someone clarify this?
I apologize; my hands didn't keep up with my brain. I meant that if `int -> bool` is permitted, and `float -> int` is permitted, then by transitive property I would expect `float -> bool` to be permitted. Can someone clarify why this is not the case? The RFC does not appear to justify this behavior (that I can find, anyway). -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php