On Tue, Apr 28, 2015 at 6:00 PM, Stanislav Malyshev <smalys...@gmail.com> wrote:
> Hi! > > > External data can have any form of numbers. > > Current PHP can handle them as "string". However PHP7's type hint cannot > > handle numeric data well because it only has "int" and "float" hints. > > This is exactly what's wrong with strict typing in PHP. However, if you > use real numeric string and do not enable strict typing - it works just > fine. We don't need more types for this. > > > There are cases that programmer want/need to handle any numeric values. > > There also cases when programmer needs to handle Roman numbers, phone > numbers, valid XML strings and TCP/IP headers. But we should not add > types into the language for those. > > > To avoid this problem, users must use "string" type hint and have to > > validate > > parameter by themselves. This ruins benefits of type hint. Most PHP will > not > > Typing is not solution for every data restriction, especially not in > PHP. If you app needs strings that can not be represented by PHP basic > types, you need custom validation code. > > > but "numeric" type hint may do the job. One function with "int"/"float" > > type hint > > could break app with current type hint implementation, though. i.e. > Working > > If you type your parameter, then you declare "I want this to fail if the > parameter is not of this type". Then you can't complain when it fails - > that's exactly what you asked for. > I agree with Stanislav here, if you want to accept any type of number, its easy enough to add your own checking to do that with the wonderful is_numeric. And for simplicity, make an invalidArgument method that you can call after manually checking if arguments are wrong: *http://3v4l.org/r0qO0 <http://3v4l.org/r0qO0>* Works for all versions this tool runs as well. -Ryan > > -- > Stas Malyshev > smalys...@gmail.com > > -- > PHP Internals - PHP Runtime Development Mailing List > To unsubscribe, visit: http://www.php.net/unsub.php > >