在类中使用全局数组

时间:2011-05-31 07:04:21

标签: php arrays class constructor global

我的目标是从另一个PHP文件中定义的全局数组中检索一些数据。我的代码在“database.php”文件中运行,我想要使用的数组在“config.php”文件中。

我的代码如下:

的config.php

$CONFIG = array();
// ...
$CONFIG["DATABASE"] = array();
$CONFIG["DATABASE"]["USERNAME"] = "user";
$CONFIG["DATABASE"]["PASSWORD"] = "pass";
$CONFIG["DATABASE"]["HOSTNAME"] = "127.0.0.1";
$CONFIG["DATABASE"]["DATABASE"] = "my_db";
// ...

database.php中

require('config.php');

class Database
{
    protected   $m_Link;
    private     $m_User;
    private     $m_Pass;
    private     $m_Host;
    private     $m_Data;
    private     $m_bConnected;

    public function __construct()
    {
        global $CONFIG;
        $this->m_User = $CONFIG["DATABASE"}["USERNAME"]; // Line #16
        $this->m_Pass = $CONFIG["DATABASE"}["PASSWORD"];
        $this->m_Host = $CONFIG["DATABASE"}["HOSTNAME"];
        $this->m_Data = $CONFIG["DATABASE"}["DATABASE"];
        $this->m_bConnected = false;
        $this->Connect();
    }

    // ...
};

给出的错误是:

  

解析错误:语法错误,意外   '}',期待']'in   C:第16行的...... \ database.php

我无法弄清楚我在这里做错了什么。

请帮我修复此错误。

(注意:PHP版本是5.3.0)

3 个答案:

答案 0 :(得分:6)

所有4行

["DATABASE"} = ["DATABASE"]

答案 1 :(得分:6)

您没有正确配对括号

$this->m_User = $CONFIG["DATABASE"}["USERNAME"]; 
----------------------------------^

应该是

$this->m_User = $CONFIG["DATABASE"]["USERNAME"]; 

答案 2 :(得分:1)

在此之后第16行和第3行出现拼写错误。

["DATABASE"} = ["DATABASE"]应该是`[“DATABASE”] = [“DATABASE”]