Hi all,

Am 16.03.2015 um 03:16 schrieb Yasuo Ohgaki:
> This code is an example that I posted in other thread.
> 
> e.g.
> <?php
> function check_num_range(int $num) { if ($num < 0 || $num > 100)
> trigger_error('Invalid range'); }
> // Somewhere far from function definition.
> $num = $GET['num'];
> // Somewhere far from $num definition.
> check_num_range($num); // Trying to check validity, int and range.
> echo 'You have '.$num. ' now <br />'; // But $num could have any string.
>                                                             //
> "check_num_range((int)$num)" wouldn't help also.
> 
> Simple cast hides bugs, not eliminates type bugs.
> This is just an example and there are many cases that cast hides bugs in
> real world codes.

please, if check_num_range() would be a build-in function, the outcome
would be exactly the same.

If $num contains something like "100 dogs", you get a notice:
http://3v4l.org/fnuAc/rfc#tabs

If $num contains rubbish, you get a catchable fatal error:
http://3v4l.org/UStfP/rfc#tabs

If you handle notices like errors, everything is fine for you. (And you
should do that!)

If you bring up an example to prove a point, please test it beforehand.
If you have strict mode not enabled, there is exactly no incentive for
you to always use casts.

Greets
Dennis

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

Reply via email to