RE: [PHP-DEV] Coercive STH - some real world tests and updated RFC

From: Date: Sun, 01 Mar 2015 14:02:40 +0000
Subject: RE: [PHP-DEV] Coercive STH - some real world tests and updated RFC
References: 1  Groups: php.internals 
Request: Send a blank email to internals+get-84105@lists.php.net to get a copy of this message
Hey Zeev, > Another change being considered and not yet in the RFC is re-allowing > leading and trailing spaces for numeric strings (sorry Paddy.) I think that rejecting leading and trailing spaces for stringy ints is for the best. If I only want to accept an integer (in either int or string form), then by enabling spaces in that input, it would destroy the overall usability of it. One scenario I have in mind for this is validating $_GET information for a RESTful web service. Having potentially an infinite number of URIs that all point to the same resource isn't good: /users/1 /users/%201 /users/1%20 /users/%201%20 /users/%201%20%20 etc. In this case, I don't want to accept any leading or trailing spaces for the user ID. So I would therefore not be able to use an int type hint because its acceptance rules would be too lax. If spaces are not accepted in stringy ints, and I want to pass a stringy int that may have leading or trailing spaces in it, then I know I can simply apply a trim() to it before passing it into a function that's expecting only an int. This way, the usability of integer-only inputs (as string or ints) isn't compromised by the rules being too weak. > The takeaway from this seems to be that the approach of tightening the > existing rule-set and applying it to both internal functions and new > user-land code is viable, and does not cause the sky to come down falling. > Preliminary tests suggest it actually finds real potential problems. > > More tomorrow. Overall, a big +1 on this though! The type coercion rules at the moment are far too lax to be considered useful in most situations IMO. > Zeev Thanks, Tom

« previous php.internals (#84105) next »