Perhaps this is an example from C++, but it illustrates my point. This may be a better example, if we are to step back a decade or two:

int i;
for (i = 0; i < 5; i++)

What is so 'inherently declaratory' about this for() ?


With this example, you've illustrated the exact reason why this is not possible in PHP. The first part of a for() is for declaration _and_ initialization. Without mandatory declaration (like in PHP), the compiler will not be able to distinguish the two cases.

In terms of your own example:

> $array = array(1, 2, 3, 4, 5);
>
> for ($i = 0; $i < 5; $i++)
> {
>     $num = $array[$i];
>     echo $num;
>     for ($i = 0; $i < 5; $i++)
>     {
>         echo $num * $i;
>     }
> }

'The whole thing gets screwed up' is only defined in terms of what you expect the result to be. How is the compiler to know that you're asking for a new variable in the inner for() loop ? It doesn't crash, does it ?

As the number of possible variable names in PHP is sufficient for most applications, using the same variable name for different variables is just /bad/ coding style.

Ard

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



Reply via email to