Re: [RFC] Permit trailing whitespace in numeric strings

From: Date: Wed, 03 Apr 2019 23:15:44 +0000
Subject: Re: [RFC] Permit trailing whitespace in numeric strings
References: 1 2  Groups: php.internals 
Request: Send a blank email to internals+get-105065@lists.php.net to get a copy of this message
Nikita Popov wrote:
I'm always a fan of making things stricter, but think that in this particular case there are some additional considerations we should keep in mind. 1. What is more important to me here than strictness is consistency. Either
both "   123" and "123   " are numeric, or neither are. Making "123    "
numeric is a change we can easily do, because it makes the numeric string definition more permissive and is thus mostly backwards compatible. Doing the reverse change is certainly not compatible and will be a much harder sell. 2. I believe that a large part of the motivation here is that by making the numeric string definition slightly more lax (in a consistent manner), we can make *other* things more strict, because this essentially eliminates the only "somewhat reasonable" case of trailing characters. The RFC already mentions two of them: a) We can hard reject "123foo" inputs to "int" arguments (and some other places). Currently this is allowed with a notice. I think if we resolve the trailing whitespace question, then there cannot be any reasonable opposition to this change. b) My own RFC on number to string comparisons would benefit from this. From initial testing it has surprisingly little impact, but one of the few cases that turned up was this comparison with a string that had trailing whitespace. Personally I think both of those changes are a lot more valuable than a stricter numeric string definition without leading/trailing whitespace.
I'm kinda unsure how to go forward because of these points. I would like to see improved comparisons, and I would like to see the end of the “non-well-formed” numeric string, and I think this whitespace RFC could be helpful to both. But I can't see the future, I don't know whether people will vote for removing leading or permitting traiing whitespace and whether or not they will be influenced by or this will influence opinion on the further improvements. ¯\_(ツ)_/¯ I'm torn between: * Vote on allowing trailing whitespace * Vote on disallowing leading whitespace * Vote on which of those two approaches to go for * Trying to bundle everything together and voting on it as a package. I'm probably thinking too strategically. Andrea

« previous php.internals (#105065) next »