1

そのような変数を含むconfig.phpファイルがある場合...

config.php

$cnf['dbhost'] = "0.0.0.0";
$cnf['dbuser'] = "mysqluser";
$cnf['dbpass'] = "mysqlpass";

次に、次のような別のファイルにあるクラスからこれらの変数にアクセスするにはどうすればよいですか...

inc / db.class.php

class db() {

  function connect() {
    mysql_connect($cnf['dbhost'], $cnf['dbuser'], $cnf['dbpass']);
  }

}
$db = new db();

したがって、次のような別のファイルでクラスを使用できます...

index.php

<html>
  <?php
    include('config.php');
    include('inc/db.class.php');
    $db->connect();
  ?>
</html>
4

2 に答える 2

3

dbスクリプトの先頭に、includerequirerequire_onceを指定して構成ファイルをインクルードします。また、使用する関数でグローバルとして指定する必要があります$cnf。そうしないと、グローバル変数にアクセスできません。

include "../config.php";

class db() {

  function connect() {
      global $cnf;
      mysql_connect($cnf['dbhost'], $cnf['dbuser'], $cnf['dbpass']);
  }

}
$db = new db();

編集:大きなプロジェクトでは、すべてのphpファイルを含めるboot.phpを使用することを好みます。そのため、必要なものすべてをすべてのファイルに含める必要はありません。これがあれば、ブートをindex.phpに含めて、すべての定義を破棄する必要があります。少し遅いですが、本当に快適です。

于 2012-07-07T14:50:44.860 に答える
2

に含めるだけconfig.phpですinc/db.class.php

編集(コメントで尋ねられた質問に答える)

あなたができることはinit.php次のようなものを持っていることです、

include('config.php');
include('db.class.php');
include('file.php');

したがって、クラスはから変数にアクセスできるようになりますconfig.php。そして今、あなたindex.phpはあなただけを含める必要がありinit.php、あなたのすべてのクラス、設定などが含まれます。

于 2012-07-07T14:50:59.057 に答える