> -----Original Message----- > From: Chris Boget [mailto:[EMAIL PROTECTED] > Sent: 01 August 2003 20:18 > > > 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?
Well, I'm kinda guessing here, but it probably goes something like this: global $GLOBALS; is the equivalent of doing $GLOBALS = &$GLOBALS['GLOBALS']; but this causes $GLOBALS to be a local variable within the function, so the sequence PHP executes probably goes like this: (1) set up $GLOBALS as a local variable of the function, masking out the true (super)global $GLOBALS. (2) look up the 'GLOBALS' element of this new local $GLOBALS -- this is NULL as no value has yet been assigned to the local $GLOBALS! (3) create a reference to the NULL obtained from this lookup, and assign that to the local $GLOBALS. So what you've ended up in the $GLOBALS which is local to the function is a reference to NULL, hence the behaviour you're seeing. Like I say, this is all guesswork -- albeit slightly educated guesswork, based on my scant and very ancient (over 20 years ago!) experience of writing bits for a couple of interpreted languages. Maybe a PHP internal person might come along and tell me how close I got...!! ;) Cheers! Mike --------------------------------------------------------------------- Mike Ford, Electronic Information Services Adviser, Learning Support Services, Learning & Information Services, JG125, James Graham Building, Leeds Metropolitan University, Beckett Park, LEEDS, LS6 3QS, United Kingdom Email: [EMAIL PROTECTED] Tel: +44 113 283 2600 extn 4730 Fax: +44 113 283 3211 -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php