On 03/06/2016 15:58, Thomas Bley wrote:
To me type declarations help to make my code easier and more consistent.
Having multiple scalar types for a single function parameter is against this 
goal since I need extra logic to handle this.

e.g. function foo(string | int | bool $bar) {} makes no sense in weak mode 
since string can already handle int, bool, float, etc.

having different behavior between
foo("42"); function foo(string $b) {echo gettype($b);} // string
and
foo("42"); function foo(string | int $b) {echo gettype($b);} // integer
also makes no sense to me.

Things like string|array are useful (e.g. str_replace) since we can cast the 
string easily to array and calling a string parameter with an array would give 
a fatal error.

That is a useful case, and don't forget also return values, e.g. all the XX|false-kind of return types it's also nice to have.

I don't think for function arguments it's massively useful and I doubt it'll get put everywhere, but it's nice to be able to express this when you have to.

Cheers

--
Jordi Boggiano
@seldaek - http://seld.be

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

Reply via email to