Re: [RFC] Permit trailing whitespace in numeric strings

From: Date: Wed, 27 Mar 2019 15:14:09 +0000
Subject: Re: [RFC] Permit trailing whitespace in numeric strings
References: 1 2 3 4 5 6 7 8 9  Groups: php.internals 
Request: Send a blank email to internals+get-104967@lists.php.net to get a copy of this message
> Isn't this the purpose of Nikic's Saner PHP String comparison RFC? It is, sorry I mixed the discussions here. As I said below, I think that these RFCs would deserved to be merged. > Because boths nikic's and Andrea's RFC go hand in hand. > And probably if both these RFC get accepted a new "stricter numerical string comparison" RFC could see the light banning leading and trailling whitespace I'd rather tackle the whole thing right now, as PHP 8 is a good opportunity for whatever BC break this will cause. Another such opportunity will not happen again before many years. > Arithmetic in JavaScript cannot be used reliably (in general) without converting your data to the proper type, because 1 + 1 gives you 11 if one of the 1s is encoded as string. PHP does a better job in that respect Sure, PHP has the huge advantage here to have a dedicated string concatenation operator, removing any ambiguity around the + operator. This does not mean that we cannot borrow their semantics for string/number *comparison*! Ben On Wed, 27 Mar 2019 at 15:26, Claude Pache <claude.pache@gmail.com> wrote: > > > Le 27 mars 2019 à 14:29, Benjamin Morel <benjamin.morel@gmail.com> a > écrit : > > > > Thinking about this a bit more, what about following JavaScript > semantics? I find them really good in this respect: > > > > Arithmetic in JavaScript cannot be used reliably (in general) without > converting your data to the proper type, because 1 + 1 gives you 11 if one > of the 1s is encoded as string. PHP does a better job in that respect. As a > result, there is good chance that people (it is at least the case for me) > are more confident to rely (often implicitly) on automatic type conversion > between strings and numbers when doing basic arithmetic in PHP than in JS, > including for comparison of numeric values. > > About leading/trailing whitespaces: usually, numbers encoded as strings do > not contain them; so that it may be OK to consider strings containing them > as non-numeric if we want. > > —Claude > >

« previous php.internals (#104967) next »