On Fri, 2008-01-04 at 12:53 -0500, Sam Barrow wrote: > On Fri, 2008-01-04 at 17:51 +0000, Alain Williams wrote: > > On Fri, Jan 04, 2008 at 12:37:19PM -0500, Robert Cummings wrote: > > > > > IMHO, optionally inclusion of type hinting for functions/methods can > > > only be a boon to code quality and readability. IMHO when a type hint is > > > provided and a parameter doesn't match the type hint then I think a > > > fatal error should occur. This forces the user of the function that has > > > type hinting to ensure their data is of the correct type. This prevents > > > accidental wrong data conversion. However, I see the other side of the > > > coin too where automatic type conversion could be desirable also. > > > Perhaps a mixed solution would be viable? > > > > > > <?php > > > > > > function foo( require int $a, require string $b ){} > > > > > > foo( '5', 'bleh' ); // <-- fatal error > > > > No. > > > > > ?> > > > > > > Contrast versus: > > > > > > <?php > > > > > > function foo( int $a, string $b ){} > > > > > > foo( '5', 'bleh' ); // <-- no exception or error $a in foo() will > > > // be type int (automatic conversion) > > > > Yes. If $a is '5' but reject if $a is '5five'. > > This is what I was considering, but to do something like this we will > have to implement a whole separate rule set just for type hint > conversion.
Personally I think it's a bit silly to allow '5' and reject '5five'. The following is fairly standard behaviour in PHP: <?php echo 'Foo: '.(0 + '5five')."\n"; echo 'Foo: '.((int)'5five')."\n"; echo 'Foo: '.(intval( ' 5five' ))."\n"; echo 'Foo: '.(sprintf( '%d', '5five' ))."\n"; ?> All produce 5. Cheers, Rob. -- ........................................................... SwarmBuy.com - http://www.swarmbuy.com Leveraging the buying power of the masses! ........................................................... -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php