On 16 Jul 2014, at 10:29, Zeev Suraski <z...@zend.com> wrote:

> For me the introduction of a new set of rules is a deal breaker.
> I'm -1 on the RFC the way it is, and +1 if we implement these 'hints' as
> implicit casts, plus change implicit casts to emit E_CAST in case of loss
> of data or 'bogus' conversions.
> 
> Why insist E_RECOVERABLE_ERROR and introduce this effectively new set of
> rules, instead of switching to E_CAST and maintain consistency?
> Maintaining consistency is a HUGE deal.  Every such feature we add that
> you need to learn more rules/exceptions for make PHP harder to learn.

As has been pointed out already, that would be inconsistent with existing type 
hints. zend_parse_parameters emits E_WARNING and returns FAILURE, while type 
hints raise E_RECOVERABLE_ERROR. To make scalar type hints not emit 
E_RECOVERABLE_ERROR and instead do something weaker would introduce *more* 
inconsistency, not less.

Also, again, while these new rules aren’t quite the same as zpp’s, they are 
largely the same, and these rules are able to be summed up clearly in a single 
sentence, unlike the confusing and inconsistent zpp rules. We could fix zpp 
later, but that would be harder as it would break backwards-compatibility. And 
again, these new rules only different from zpp in very few places (integral 
values, “123abc” and booleans).
--
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