Am Sonntag, 6. Januar 2008 12:28 schrieb Alain Williams:
Hello,
> You are confusing the TYPE and the VALUE.
>
> What type hinting means is:
>
> * is the TYPE correct ? If so succeed.
>
> * can the VALUE be 100% converted to the desired TYPE (eg '5' to int) ?
> If so succeed.
>
> * fail
<?php
echo (int) "1", "<br>\n"; // => 1
echo (int) "1a", "<br>\n"; // => 1
echo (int) "1.2", "<br>\n"; // => 1
echo (int) "a1", "<br>\n"; // => 0
?>
Which cases should be allowd for?
function foo(int $bar);
IMHO only
foo("1");
and maybe also
foo("1.0");
But then the type conversion for type hinting is different from
the type conversion in all other cases which makes PHP
probably harder to learn.
IMHO a system that makes sure that a variable must contain
only specific values would be more useful.
$int_number: int;
$float_number: float;
$range: int 1..12; // month
$email_address: emailaddress;
$options: options['foo', 'bar', 'alice', 'bob'];
The problem is still should "1a" convert and assigned to $int_number? But
because value checking is a different context than type hinting this is
maybe easier to learn.
tschuess
[|8:) http://www.sven-drieling.de/
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php