Bluehost.com Web Hosting $6.95

included file var scope

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 ...


Go Back   Usenet Forums > PHP Programming Forums > PHP General

FAQ Members List Calendar Search Today's Posts Mark Forums Read
  #1 (permalink)  
Old 04-07-2008
Evert Lammerts
 
Posts: n/a
Default included file var scope

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
Reply With Quote
  #2 (permalink)  
Old 04-07-2008
Stut
 
Posts: n/a
Default Re: [PHP] included file var scope

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/
Reply With Quote
  #3 (permalink)  
Old 04-07-2008
Evert Lammerts
 
Posts: n/a
Default Re: [PHP] included file var scope


> 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
Reply With Quote
  #4 (permalink)  
Old 04-07-2008
Stut
 
Posts: n/a
Default Re: [PHP] included file var scope

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/
Reply With Quote
  #5 (permalink)  
Old 04-08-2008
Németh Zoltán
 
Posts: n/a
Default Re: [PHP] included file var scope

>
>> 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
>
>



Reply With Quote
Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are Off
[IMG] code is Off
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On




All times are GMT +1. The time now is 05:20 AM.


Powered by vBulletin® Version 3.7.3
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.0.0