On Mon, 2008-01-07 at 15:19 +0100, Stefan Priebsch wrote: > Sam Barrow schrieb: > > Well these errors can be handled like any other, as long as they don't > > issue a fatal. > > That's exactly my point. You need to handle them. So in pidgin PHP that > could look something like > > function foo(int $foo) {} > > try > { > foo($bar); > } > > catch (WhateverException $e) > { > since $bar cannot be converted to int, do_whatever > } > > Is that really betten than writing > > if (!is_int($bar)) do_whatever > foo($bar) > > or > > function foo($foo) > { > if (!is_int($foo)) do_whatever > }
It is much more brief, and can be detected by code documenting programs. Keep in mind that your "do_whatever" would actually be a trigger error with an error message including the name of the function and parameter number. if (!is_int($var1)) { trigger_error('Argument #? to function ? must be an integer.') ; } Without type hinting: function foo($var1, $var2, $var3, $var4, $var5) { if (!is_int($var1)) { trigger_error('Argument #1 to function foo() must be an integer.') ; } if (!is_int($var2)) { trigger_error('Argument #2 to function foo() must be an integer.') ; } if (!is_int($var3)) { trigger_error('Argument #3 to function foo() must be an integer.') ; } if (!is_int($var4)) { trigger_error('Argument #4 to function foo() must be an integer.') ; } if (!is_int($var5)) { trigger_error('Argument #5 to function foo() must be an integer.') ; } return true ; } With type hinting, this is shortened to: function foo(int $var1, int $var2, int $var3, int $var4, int $var5) { return true ; } -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php