On Wed, 26 May 2010, Davey Shafik wrote:

> Would it be possible to support two syntaxes:
> 
> function foo( (int) $bar) { }  // auto-cast to int
> function foo(int $bar) { }      // require int

I think that's a brilliant plan. We won't ever agree on whether we want 
either strict type hinting, or casting typehinting and this provides 
both possibilities with the following pros:

- The syntax is consistent for casting. We already support (int) $bar 
  anywhere else.
- The syntax is consistent for strict type checking. We already support 
  throwing errors with foo(ClassName $bar).
- There are no new conversion rules that can confuse people.
- Type checking with "int $bar" will stay fast, as we only have to 
  compare type.

> There has never been casting to objects other than stdClass, so I 
> don't think it conflicts that there is no:
> 
> function foo( (DBAdapter) $bar) { }

Something we could add later? :)

regards,
Derick

-- 
http://derickrethans.nl | http://xdebug.org
Like Xdebug? Consider a donation: http://xdebug.org/donate.php
twitter: @derickr and @xdebug

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

Reply via email to