Моя цель - извлечь некоторые данные из глобального массива, который определен в другом файле 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"];
$this->m_Pass = $CONFIG["DATABASE"]["PASSWORD"];
$this->m_Host = $CONFIG["DATABASE"]["HOSTNAME"];
$this->m_Data = $CONFIG["DATABASE"]["DATABASE"];
$this->m_bConnected = false;
$this->Connect();
}
// ...
};
Ошибка не указана (за исключением уведомления о сбое подключения к базе данных).
Я не могу получить доступ к элементам массива.Например, $CONFIG["DATABASE"]["USERNAME"]
возвращает пустое значение, даже если оно было инициализировано строкой "user"
в config.php
.
Как мне изменить свой код, чтобы этот глобальный массив мог быть доступен внутри классаконструктор?
(Примечание: версия PHP 5.3.0)