PHP错误:包含它们后,常量变为未定义

时间:2013-08-31 07:05:32

标签: php

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

示例 -
FileName: 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'中定义这些常量而不是在不同的文件上执行它,这是有效的。

为什么会发生这种情况?

1 个答案:

答案 0 :(得分:0)

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

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