Re: [RFC] Scalar Type Hinting With Casts (re-opening)

From: Date: Thu, 24 Jul 2014 07:22:44 +0000
Subject: Re: [RFC] Scalar Type Hinting With Casts (re-opening)
References: 1  Groups: php.internals 
Request: Send a blank email to internals+get-75993@lists.php.net to get a copy of this message
hi Andrea, On Sun, Jul 13, 2014 at 3:57 AM, Andrea Faulds <ajf@ajf.me> wrote: > Good evening, > > PHP’s type hinting system is rather incomplete as it does not support scalars, only arrays, > callables and objects. In 2012, Anthony Ferrara created an RFC which proposed type hinting for > scalar types (int, float, bool, string and resource) with casting, with behaviour nearly the same as > that of zend_parse_parameters. Sadly, he later left PHP internals and withdrew his RFCs. > > Since I am very much in favour of scalar type hints, I’ve updated the patch to master and > made some minor improvements, and I am re-opening the RFC with the intent to try and get it into PHP > 5.7. The patch is mostly there. It needs some more tests and there are some edge cases I need to > deal with, but it otherwise works, and I expect I can finish fixing it up very soon. > > The RFC is here: > https://wiki.php.net/rfc/scalar_type_hinting_with_cast > > A pull request is here: https://github.com/php/php-src/pull/717 > > I’m hoping I can get this into PHP 5.7. I think scalar type hinting would be a valuable > addition to PHP’s existing type hinting system. very nice work, thanks! Some comments or wishes. I know these points have been discussed already in the other threads but I still think it is worth posting that here and (re) consider it. To me argument types handling should match what we already do for classes, strict handling. I asked many users at various conferences or large companies using PHP and this is also what they wish. Indeed I am not saying that all users wish that (who am I to say that? :) but I feel like there is a large majority expecting this behavior. The argument saying that it is not the PHP way is somehow incorrect here, given that we already do that for classe. The type jungling makes sense in implementations, as it always was but argument passing and validation have been a source of pain since very long. I could imagine one exception with the "numeric" type, which could accept anything and got converted to integer/numeric values, like "1235ab" or other weird things. Cheers, -- Pierre @pierrejoye | http://www.libgd.org

« previous php.internals (#75993) next »