Globals
| From: | Chris Boget | Date: | Fri, 01 Aug 2003 19:03:35 +0000 |
| Subject: | Globals | ||
| Groups: | php.general | ||
| Request: | Send a blank email to php-general+get-157988@lists.php.net to get a copy of this message | ||
I'm curious if someone could explain to me why this is occuring:
function blah() {
//global $GLOBALS;
echo 'Globals: <pre>'; print_r( $GLOBALS ); echo '</pre>';
}
As it is shown above, with the 'global $GLOBALS' line commented
out, the print_r() works and shows all the currently defined variables
and their corresponding values. However, if I declare $GLOBALS
as global, nothing gets printed out.
Why?
Wouldn't the 'global $GLOBALS' line be more or less redundant in
most cases? Because $GLOBALS is a superglobal (though, it isn't
really)? Why would it affect whether or not $GLOBALS actually has
the expected data inside the function?
While I'm on this subject, why isn't $GLOBALS always a superglobal?
For example, this doesn't work:
function innerFunc() {
echo $GLOBALS['blah'];
}
function outerFunc() {
innerFunc();
}
$blah = 'bob';
outerFunc();
Nothing gets echoed from innerFunc(). Why? If anyone can offer
any insight as to what is going on, I'd be ever so appreciative.
Chris