On Mon, 14 Jul 2014, Rowan Collins wrote:

> Derick Rethans wrote (on 14/07/2014):
> > A compromise by adding more inconsistencies.
> 
> The only way of not introducing some inconsistencies (or, to put it another
> way, new features) is to use strict type hints, which perform no casting, and
> error on invalid input, since that's what the existing type hints do, in
> particular "array". There's broad consensus that that wouldn't be very
> "PHP-ish", and it has been rejected in previous discussions.

I am quite aware of that.

> Here are the main variants discussed in this thread:
> 
> 1) add type hints using existing syntax, but which are actually silent casts,
> rather than the strict validation performed for existing types

> 2) add type hints using existing syntax, which are casts, but also act
> differently from existing casts by emitting some kind of notice

> 3) add cast hints using a new syntax

> 4) add type hints using existing syntax, which use a new "lossless cast", i.e.
> perform validation for completely wrong input ('abc' as an int param) but
> allow juggling for "reasonable" input ('123' as an int param).
> 
> Option 2 (or 3) could also be implemented by making *all* lossy casts emit
> some kind of notice.
> 
> This RFC currently proposes option 4.

Yes. And with that option I have a problem, as nothing else does it like 
that now - hence my arguing against "a new set of casting rules". Option 
1 is equivalent to my argument that this should be equivalent:

        function foo(int $var) {} 

        function foo($var) { $var = (int) $var; } 

and called by f.e.:

        foo('123abc');

cheers,
Derick

-- 
http://derickrethans.nl | http://xdebug.org
Like Xdebug? Consider a donation: http://xdebug.org/donate.php
twitter: @derickr and @xdebug
Posted with an email client that doesn't mangle email: alpine

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

Reply via email to