function Init($pconnect=FALSE) {
$this->linkID = 0;
$this->dbHost = $GLOBALS['cfg_dbhost'];
$this->dbUser = $GLOBALS['cfg_dbuser'];
$this->dbPwd = $GLOBALS['cfg_dbpwd'];
$this->dbName = $GLOBALS['cfg_dbname'];
$this->dbPrefix = $GLOBALS['cfg_dbprefix'];
$this->result["me"] = 0;
$this->Open($pconnect);
}
那么问题来了:这些信息是如何被放入到 $GLOBALS 中的呢?
$GLOBALS 是 PHP 中的一个超全局变量数组,它包含了所有全局范围内的变量。只要是在函数或类外部定义的变量,都会自动成为 $GLOBALS 数组的一部分。
以 DedeCMS 的配置为例,在 common.inc.php 文件中,我们可以找到类似以下的代码:
$cfg_dbhost = 'localhost';
$cfg_dbuser = 'root';
$cfg_dbpwd = 'password';
$cfg_dbname = 'dedecms';
$cfg_dbprefix = 'dede_';
当 common.inc.php 被加载时,这些变量会被定义并自动添加到 $GLOBALS 数组中。例如,$cfg_dbhost 的值为 'localhost',因此可以通过 $GLOBALS['cfg_dbhost'] 来访问它。
具体来说,DedeCMS 在初始化过程中会先加载 common.inc.php 文件。这个文件包含了数据库连接所需的所有配置信息。一旦文件被加载,这些配置变量就会被存储到 $GLOBALS 数组中,供后续的数据库连接函数使用。
总结一下,$GLOBALS 数组的作用是提供一种机制,让全局变量可以在任何地方被访问。对于 DedeCMS 来说,common.inc.php 文件中的配置变量会被自动添加到 $GLOBALS 中,从而确保数据库连接函数能够正确获取所需的配置信息。
如果您正在研究 DedeCMS 的数据库连接机制,了解 $GLOBALS 的工作原理将有助于您更好地理解系统的运行流程。同时,这也提醒我们在开发中要注意全局变量的使用,避免因误用而导致的安全问题。