On 15 Jul 2014, at 13:50, Alain Williams <a...@phcomp.co.uk> wrote:

>> It will blow up with a fat E_RECOVERABLE_ERROR.
>> But this won't hold back the library authors from using it, which means
>> that the consumers of those libs has to start coding defensively, and make
>> sure that the variable holding the value 123 is an integer and not a float
>> or a string, because that will blow up something.
> 
> They will have it blow up when it first runs, fix the bug (add a cast or
> something) and move on. I think that it is an insult to PHP coders to assume
> that they will not be able to cope. They will scratch their heads the first 
> time
> that it happens to them, google/... & learn.
> 
> The benefit of this is fewer issues in libraries. It may also help by catching
> user/coder errors earlier and so make their life easier.
> 
> There is trade off bet

As has been pointed out previously, this isn’t good. People will simply do this 
just to fix an error:

    foobar((int)$_GET[‘thing’]);

However, an explicit cast can *never fail*. It will always return something, 
whether it makes sense or not. This is simply going to lead to buggy software.

On the other hand, this RFC proposes a set of type hint casts which have 
stricter rules than an explicit cast, and also somewhat stricter than 
zend_parse_parameters, meaning that people can safely do $_GET[‘thing’] and 
it’ll work, but if a nonsensical value is passed in, the program will error as 
it should.
--
Andrea Faulds
http://ajf.me/





--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to