Re: [VOTE][RFC] Coercive Scalar Type Hints

From: Date: Sat, 14 Mar 2015 04:31:00 +0000
Subject: Re: [VOTE][RFC] Coercive Scalar Type Hints
References: 1 2 3  Groups: php.internals 
Request: Send a blank email to internals+get-84758@lists.php.net to get a copy of this message
On Fri, Mar 13, 2015 at 8:50 PM, Rasmus Lerdorf <rasmus@lerdorf.com> wrote: > On Mar 14, 2015, at 13:37, Levi Morrison <levim@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?

« previous php.internals (#84758) next »