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