1

このファイルを含めて、変数の 1 つを収集します。ファイル パスは正しく、ファイル インクルード エラーは発生しません。しかし、そのファイル内の変数を印刷しようとすると、未定義の変数エラーが発生します。以下はコードです。

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

phpクラスがあります。クラス内には login 関数があります。その関数内に、funtions.php と仮定して別のファイルを含めています。

functions.php には上記のコードが含まれています。

functions.php ファイル内に、探している変数を含むこのファイルを含めます (test.php と仮定します)。

test.php は次のようになります (php タグ内)

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

前に言ったように、これを functions.php 内に含めて $code を印刷すると、なぜ未定義のエラーが発生するのですか?

完全なコード

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

これは、このファイルをインクルードする関数です。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";

大変助かりました!

4

2 に答える 2

3

以前にconfig.php をinclude別の場所で d したことがあり、include_once. したがって、変数は、2 回目に含めるスコープでは作成されません。

于 2012-04-05T08:52:17.423 に答える
2

これは、特定のオブジェクトで使用できない場所 (関数など) から変数にアクセスしようとしている変数のスコープに問題がある可能性があります (クラス内にファイルを含めたと述べました)。コードを見ずにこの質問に答えるのは非常に難しいです。

于 2012-04-05T08:01:32.590 に答える