Использование глобального массива внутри класса - PullRequest
1 голос
/ 31 мая 2011

Моя цель - извлечь некоторые данные из глобального массива, который определен в другом файле 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();
    }

    // ...
};

Ошибка:

Ошибка разбора: синтаксическая ошибка, неожиданная '}', ожидая ']' в C: ... \ database.php в строке 16

Я не мог понять, что я делаю здесь неправильно.

Пожалуйста, помогите мне исправить эту ошибку.

(Примечание: версия PHP 5.3.0)

Ответы [ 3 ]

6 голосов
/ 31 мая 2011

Вы неправильно соединяете скобки

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

Должно быть

$this->m_User = $CONFIG["DATABASE"]["USERNAME"]; 
6 голосов
/ 31 мая 2011

["DATABASE"} = ["DATABASE"] на всех 4 строках.

1 голос
/ 31 мая 2011

После этого у вас есть ошибка опечатки в строках 16 и 3.

["DATABASE"} = ["DATABASE"] должно быть `[" DATABASE "] = [" DATABASE "]

...