Jump to content

Recommended Posts

PHP Platform: 4
I currently have a class with a function LoadResource($res)

That does [code]ob_start();
require_once($res);
ob_end_clean();[/code]
To be sure no headers are sent (This function is to be called on function includes and etc.

accessed ie $class->LoadResource('file.php');

Now heres the problem. My structure is in this format:

[code]
<?
require('configfile'); // this has info needed for constructing the class
//Say one variable is $theme that holds the theme the user wants to use
$class = new Class;
$class->LoadResource('test.php');
[/code]
test.php:
[code]<?
if($theme) die('Theme is set'); } else { die('theme is not set!!!!'); }
[/code]

Problem: file is loaded just fine, except the functions file does not have access to the variables initiated.
The example above prints theme is not set.


I was hoping using require inside of a class would act like a normal require, but its not :(

I know i COULD use global $theme in the LoadResource, but this code is to be used in many things, theres many variables, and the variable is to change per application.

So is there anyway I can make LoadResource() have access to read/set global variables?
Link to comment
https://forums.phpfreaks.com/topic/6516-class-function-require-problem/
Share on other sites

Grr... still not completely working.

the included file has access to the variables, but my index/other functions does not.

class.php:
[code]
class classx {
function LoadResource($res) {
   extract($GLOBALS);
   require_once($res);
}
}
[/code]
index.php:
[code]
$b = new classx;
$b->LoadResource('functions.php');
echo 'Variable:' . $variable; // prints nothing for $variable
test();  // prints nothing after variable:
[/code]
functions.php:
[code]
$variable=1;
echo 'File Variable: ' . $variable; // prints 1
function test() {
global $variable;
echo 'Function Variable:' . $variable; // prints nothing for var
}
[/code]
[!--quoteo(post=361577:date=Apr 4 2006, 10:47 AM:name=thorpe)--][div class=\'quotetop\']QUOTE(thorpe @ Apr 4 2006, 10:47 AM) [snapback]361577[/snapback][/div][div class=\'quotemain\'][!--quotec--]
You need to read up on [a href=\"http://au3.php.net/manual/en/language.variables.scope.php\" target=\"_blank\"]scope[/a]. Basicaly, objects have there own namespace, any variables or any files included within them are only available within each object.
[/quote]
I understood that, Im asking how can I get past it :(
extract globals gives my included file access to variables
but any variables in the included file are not global, How can i make them global?
This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.