PHP错误:在包含常量之后,它们会变得未定义


PHP Error: Constants get undefined after including them

好的,这就是问题所在。我定义了一些常量来存储在数据库信息中。

示例-
文件名:config.php

<?php
//Define Database Constants
defined("DB_SERVER")   ? NULL : define("DB_SERVER", "localhost");
defined("DB_NAME")     ? NULL : define("DB_NAME", "test");
defined("DB_USER")     ? NULL : define("DB_USER", "root");
defined("DB_PASSWORD") ? NULL : define("DB_PASSWORD", "password");
?>

我已经将其包含在另一个名为database.php的文件中:

<?php
require_once("config.php");
class MySQLDatabase {
private $connection;
function __construct(){
    $this->open_connection();
}
public function open_connection(){
    $this->connection = mysql_connect(DB_SERVER, DB_USER, DB_PASSWORD);
    if(!$this->connection){
        die("Database connection failed: " . mysql_error());
    } else {
        $db_select = mysql_select_db(DB_NAME);
        if(!$db_select){
            die("Database selection failed: " . mysql_error());
        }
    }
}
}
$database = new MySQLDatabase();
?>

问题是,每当我在另一个页面上包含"database.php"时,都会出现一个错误,说明我有未定义的常量。当然,数据库连接也不起作用。现在,如果我在"database.php"中定义这些常量,而不是在不同的文件中定义,这是可行的。

发生这种情况有原因吗?

在运行时定义一个命名常量,为什么不在类中调用它。

如果您这样使用,请将变量设置为全局变量。