包含文件中的变量未定义的变量错误

问题描述:

我包含此文件以收集其变量之一。文件路径是正确的,我没有得到文件包含错误。但是当我尝试在该文件内打印一个变量时,它会给出未定义的变量错误。以下是代码。包含文件中的变量未定义的变量错误

include_once($path . "folder/file.php"); 
echo($code); 

有一个php类。在课堂内部有一个登录功能。在这个函数中,我包含另一个文件,假设它是funtions.php。

functions.php上面有代码。

在functions.php文件里我包含了这个文件,其中包含我正在寻找的变量(假设它是test.php)。

test.php的是这样的(PHP内标签)

 $code="something"; 
    $another_variable="something else"; 

所以现在就像我说的,当我包括这里面的functions.php和打印$代码之前为什么它提供了一个未定义的错误?

的完整代码

function log($user, $pass) { 

    global $config; 
    $this->get_available_accounts(); 
    if (isset($this->Users_obj[$user])) { 
     if ($this->Users_obj[$user]->userName == $user && $this->Users_obj[$user]->passWord == $pass) { 
      delete_cache_full(); 
      $_SESSION['username'] = $user; 
      $_SESSION['log'] = true; 
      $_SESSION['usergroup']=$this->Users_obj[$user]->level; 
      $this->set_permission_session($_SESSION['usergroup']); 
      include_once $config->path . 'config.php'; 
      $newUpdate2=showUpdates2(); 
      if(!empty($newUpdate2)){ 
       $_SESSION['updateremindlater']=$newUpdate2['date']; 
       } 
      //file 
      include_once $config->path . 'functions.php'; 
      $func = new UserFuncs(); 
      $func->validate(); 
      include_once $config->path . 'view/ViewDashboard.php'; 
      return true; 
     } 
    } 

这就是功能的IM含有该文件之中。 include_once $config->$path . 'functions.php';包括functions.php文件 的functions.php看起来像这样

include_once($path. "folder/config.php"); 
    echo($code); 

和config.php文件看起来像

$code = "ERGERW2342HV3453WERWEER"; 
    $host_name = "SERV345WERFDGDDFGDGF"; 
    $return_code = "DFGDFSDGFS"; 
    $vurl = "YUIYUJHGJ"; 
    $next_val ="AWERFDFVDV"; 
    $val_exp = "NMGHJGJGH"; 

帮助非常感谢!

+5

您必须显示您的*完整*代码才能负责。无论是你的范围是错误的,还是你没有设置变量或其他正在做的事情,我们无法从你展示的代码段中确定。 – deceze 2012-04-05 07:34:10

+2

我认为* deceze *是正确的,因为您提供的描述非常难以遵循,并且可能是因为您有一个理解问题,因此不容易专门描述问题。所以最好的事情是你分享整个代码。或者绘制一幅图像,这可能会更好:可视化如何完成包含。另外'include'和'include_once'做不同的事情,所以要注意差异。 – hakre 2012-04-05 07:46:09

+0

请检查我的回复 – guitarlass 2012-04-05 08:22:16

只是猜测你已经在include d config.php之前的其他地方,并且它不会再被包含,因为include_once。因此,变量不会在第二次包含它的范围中创建。

+0

thanksssss哥们!我救了!我犯了多么愚蠢的错误。 – guitarlass 2012-04-05 09:24:59

这可能是一个变量作用域的问题,你试图从某个地方访问变量(例如函数),而这个变量对于那个特定的对象是不可用的(你确实提到过你将该文件包含在一个类中) 。 我同意deceze和hakre,在看不到你的代码的情况下很难回答这个问题。

+0

请检查编辑的文章。看到包含的代码。 – guitarlass 2012-04-05 08:29:06