从其他文件中的类访问文件中的变量

时间:2012-07-07 14:47:55

标签: php class variables

如果我有一个包含变量的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>

2 个答案:

答案 0 :(得分: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();

修改: 在大项目中,我更喜欢使用boot.php,其中包含所有的php文件,因此我不需要在每个文件中包含我需要的所有内容。有了这个,我只需要将引导包含到index.php中并且必须处理所有定义。它稍慢但很舒服。

答案 1 :(得分: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,所有课程,配置等都会包含在内。