variable scope problem

Do you have a question? Post it now! No Registration Necessary.  Now with pictures!

Threaded View

Hi, all,
foreach($array as $k => $v) {
     $foo = ...;
echo $foo;

Is it allowed to access the $foo variable that is created within the
loop from outside of the loop? I think it isn't allowed, because
according to the rule stated in PHP manual( /
en/language.variables.scope.php): The scope of a variable is the
context within which it is defined, the $foo variable is defined
inside the loop, so its scope should limit within that loop. But the
test result of such script shows that I can access the $foo variable
from outside of the loop correctly. WHY? I'm a PHP newbie, Could
somebody help me out? Thanks in advance.

Re: variable scope problem

ray wrote:
Quoted text here. Click to load it

There is no lexical scoping in PHP. Did you read any further than the
first sentence of the page? From your example, it's not clear in which
context $foo was defined (global or local scope), although you can't
localize vars to just any block. Vars in a function or class
definition are limited to a local scope, unless you explicitly use the
"global" keyword or $GLOBALS array.


Re: variable scope problem

Quoted text here. Click to load it

Thanks for your reply.
What means lexical scoping? Do you mean that only a function can
establish a local scope?
I did read the whole page of the manual page and it does not
explicitly clarify this issue.

Site Timeline