This is a discussion on included file var scope within the PHP General forums, part of the PHP Programming Forums category; Hi all, My system is accessible through an index.php file. This file does a bunch of includes to include ...
|
|||||||
| FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
|
|||
|
Hi all,
My system is accessible through an index.php file. This file does a bunch of includes to include global variables, which in function context become available through the global keyword: index.php <?php require_once "global_vars.php"; function f() { global $global_var; var_dump($global_var); } f(); ?> However, apart from access through the index.php file I want to be able to include my index.php file from a function context: <?php function includeIndex() { require_once ("index.php"); } ?> The logical result is that variables that are globally accessible to functions when the system is accessed through index.php are now in the context of includeIndex() - so they're not global. I want to fix this problem by not having the include inside of the function context. How to go upon this? Evert |
|
|||
|
Evert Lammerts wrote:
> My system is accessible through an index.php file. This file does a > bunch of includes to include global variables, which in function context > become available through the global keyword: > > index.php > > <?php > require_once "global_vars.php"; > > function f() { > global $global_var; > var_dump($global_var); > } > > f(); > > ?> > > However, apart from access through the index.php file I want to be able > to include my index.php file from a function context: > > <?php > > function includeIndex() { > require_once ("index.php"); > } > > ?> > > The logical result is that variables that are globally accessible to > functions when the system is accessed through index.php are now in the > context of includeIndex() - so they're not global. > > I want to fix this problem by not having the include inside of the > function context. How to go upon this? In index.php rather than declaring vars like so... $var = 'value'; ....declare them in the $GLOBALS array like so... $GLOBALS['var'] = 'value'; $var is then in the global scope regardless of where it was set. -Stut -- http://stut.net/ |
|
|||
|
> In index.php rather than declaring vars like so... > > $var = 'value'; > > ...declare them in the $GLOBALS array like so... > > $GLOBALS['var'] = 'value'; > > $var is then in the global scope regardless of where it was set. > > -Stut > That would work. However I'm looking for a more generic solution, independent of the system that is being included. So basically I want to be able to include a file in my function while stepping out of the context of the function itself. E |
|
|||
|
Evert Lammerts wrote:
> >> In index.php rather than declaring vars like so... >> >> $var = 'value'; >> >> ...declare them in the $GLOBALS array like so... >> >> $GLOBALS['var'] = 'value'; >> >> $var is then in the global scope regardless of where it was set. >> >> -Stut >> > > That would work. However I'm looking for a more generic solution, > independent of the system that is being included. So basically I want to > be able to include a file in my function while stepping out of the > context of the function itself. I'm not sure what you mean. If you're saying you want to include a file from inside a function but for all parts of it to behave as if it were being included at the global scope then I don't believe there's a way to do it. Maybe it would be better if you tell us exactly what you're trying to achieve. I don't really see why my solution above would not work so I probably don't fully understand what you're trying to do. -Stut -- http://stut.net/ |
|
|||
|
>
>> In index.php rather than declaring vars like so... >> >> $var = 'value'; >> >> ...declare them in the $GLOBALS array like so... >> >> $GLOBALS['var'] = 'value'; >> >> $var is then in the global scope regardless of where it was set. >> >> -Stut >> > > That would work. However I'm looking for a more generic solution, > independent of the system that is being included. So basically I want to > be able to include a file in my function while stepping out of the > context of the function itself. > > E put all those variables in a singleton. then just use MyGlobals::getInstance()->myvar all over the place and you can do whatever you want with them. of course don't forget to include the class definition everywhere you want to use it greets, Zoltán Németh > > -- > PHP General Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > > |