我的目標是從另一個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();
}
// ...
};
給出的錯誤是:
Parse error: syntax error, unexpected '}', expecting ']' in C:...\database.php on line 16
我無法弄清楚我在這裏做錯了什麼。
請幫我解決這個錯誤。
(注:PHP版本是5.3.0)上的所有4條線
你爲什麼不通過'$ CONFIG [ 'DATABASE']'作爲參數傳遞給你的'Database'類的構造函數? '公共函數__construct($ config){'那麼你不需要全局它。 – 2011-05-31 07:09:15
我同意格雷格。 (真正的)問題不是拼寫錯誤,而是訴諸全局狀態而不是使用依賴注入。傳入配置數組。 – Gordon 2011-05-31 07:14:30