Re: Globals

From: Date: Fri, 01 Aug 2003 19:15:09 +0000
Subject: Re: Globals
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-157990@lists.php.net to get a copy of this message
I can't speek about the first problem, but about the second one. You are not setting the variable $blah as a global variable. Try this instead $GLOBALS['blah'] = 'bob'; and that should work. You need to look into scope when refering to variables and functions. Jim Lucas ----- Original Message ----- From: "Chris Boget" <chris@wild.net> To: "PHP General" <php-general@lists.php.net> Sent: Friday, August 01, 2003 12:03 PM Subject: [PHP] Globals > 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 > > > -- > PHP General Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > >

« previous php.general (#157990) next »