6

PHPスクリプトからいくつかの変数をインポートしようとしています。それは簡単に思えますが、私はそれを機能させることができません。

スクリプトには、次のようないくつかのグローバル変数が含まれています。

$server_hostname = "localhost";
$server_database = "kimai";
$server_username = "root";
$server_password = "";
$server_conn     = "mysql";
$server_type     = "";
$server_prefix   = "kimai_";
$language        = "en";
$password_salt   = "7c0wFhYHHnK5hJsNI9Coo";

次に、スクリプトでこれらの変数にアクセスしたいので、次のようにしました。

require_once 'includes/autoconf.php';   
var_dump($server_hostname);

しかし、これはNULLを出力するだけです。私も試しました:

require_once 'includes/autoconf.php';

global $server_hostname;    
var_dump($server_hostname);

しかし、まだ機能していません。

「autoconf.php」ファイルにいくつかのステートメントを追加echoしたので、ロードされていることがわかります。

これらの変数にアクセスする方法はありますか?

4

7 に答える 7

3

最初に変数をグローバルとして定義する必要があります。

global $server_hostname;
$server_hostname = "localhost";
于 2012-05-18T06:54:46.717 に答える
2

ファイルがアプリケーションの別の場所に含まれていたことが判明したため、 を呼び出したときにrequire_once、ファイルがまったく含まれていませんでした。私はちょうどにそれを変更しrequire、今では動作します。

于 2012-05-19T03:29:12.610 に答える
1

ファイルが正しく含まれていない可能性があります。

require_once 'includes/autoconf.php';   

インクルードする現在の作業ディレクトリを確認するautoconf.php

これを試して

if (file_exists('includes/autoconf.php')) require_once 'includes/autoconf.php';
else echo 'File not exists';

それをチェックしてください。

于 2012-05-18T06:56:55.077 に答える
0

これは悪ですが、それは仕事を成し遂げる可能性があります。

<? //PHP 5.4+
\call_user_func(static function(){
    $globals = \get_defined_vars();
    include 'includes/autoconf.php';
    $newVars = \array_diff_key($globals, \get_defined_vars());
    foreach($newVars as $name => $value){
        \define($name, $value);
    }
});
//Variables defined in file are now constants!
?>
于 2012-05-18T07:54:51.357 に答える
0

定数を使用するのはどうですか?

define("server_hostname","localhost"); define("server_hostname","localhost");

于 2012-05-18T06:57:55.043 に答える
0

ファイルを含め、変数がプレーンテキストであり、関数/クラス内ではない場合、グローバルなしで機能します

php.ini に移動し、display_errors=On とエラーを E_ALL に設定して、どちらが正しい理由かを確認します。

于 2012-05-18T07:08:09.300 に答える