Hmm.. Funny I was having this same problem yesterday and wanted to post.
Here's My question, a variable is not actually global is not actually global until I make it global through "global $make_this_global" and then I can assess it using $GLOBAL[$make_this_global]. Another method would be to "global"ise it on demand by writing a little function. (like Rasmus) I did it like this --> ---create_globals.php------------ function create_global($passed_variable) if (isset ($GLOBALS[$passed_variable])) { return $GLOBALS[$passed_variable]; } ---------------end----------------- --------config.php------------------ $page_title = "Page Title of Web Page" ---------end------------------------ ----------index.html---------------- require_once ('create_globals.php'); $local_variable = create_global( 'main_title') echo "My Page Title is".$local_variable; --------------end--------------------- Hence This way I can make it global-on-demand. Maybe a better way to do it would be to ---------------config.php----------- global $page_title = "Alternative Way" ----------------end----------------- then I can ->echo "This is an ".$page_title; and it'll come out as -> "This is an alternative way" The only problem here would be the "EXTRA" typing involved. The other problem/question is, will there be a speed tradeoff? If I were to global'ise everything at the 1st place, would it be faster than jumping in and out of create_global() and going through $page_title & whatever other variables? (I want to make all global configurations in this file so it'll be easy to change) Any help is appreciated. Cheers, Mun Heng, Ow H/M Engineering Western Digital M'sia DID : 03-7870 5168 -----Original Message----- From: Greg Beaver [mailto:[EMAIL PROTECTED] Sent: Saturday, July 05, 2003 12:39 AM To: Rasmus Lerdorf Cc: Aric Caley; [EMAIL PROTECTED] Subject: Re: [PHP] include/require inside of function Hi, If the file you are including is of your own authorage (I know that isn't a word, but whatever :), just refer to global variables always as an index of the $GLOBALS array. This is good practice anyways for any file that might be included by another user, for exactly this issue. I have a file that could be a global include or not in my project, and making sure every global variable is referenced as $GLOBALS['varname'] fixed it for me without any fancy code (although Rasmus's code is very nice) Regards, Greg -- phpDocumentor http://www.phpdoc.org Rasmus Lerdorf wrote: > On Fri, 4 Jul 2003, Aric Caley wrote: > >>Is there anyway to include a file inside of a function and have the included >>stuff be global? For instance if I defined a class or a function in that >>include file, I want to be able to use that class outside of the function. >> >>On the documentation for include() a poster commented that it did indeed >>work like this, but my testing indicates it does not. Everything stays >>local to the function and goes away when the function ends. >> >>Is there a way? > > > Functions defined in included files are always global. So I guess it is > just the variable you want to put out into the global symbol table. It's > a little bit tricky, but you can do it like this: > > function foo($filename) { > extract($GLOBALS, EXTR_REFS); > include $filename; > $arr = array_diff(get_defined_vars(),$GLOBALS); > foreach($arr as $var=>$val) $GLOBALS[$var] = $val; > } > > -Rasmus -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php