跨多个文件使用PHP常量时出错

时间:2014-07-14 14:44:54

标签: php constants

这是我在文件'b'中得到的错误:

Notice: Use of undefined constant SITE_STATUS - assumed 'SITE_STATUS'

我的文件'a'包含:

if ($_SERVER['HTTP_HOST'] == 'localhost') {
defined('SITE_STATUS') or define('SITE_STATUS', "dev");
} elseif ($_SERVER['HTTP_HOST'] == 'dev.xxx.com') {
defined('SITE_STATUS') or define('SITE_STATUS', "dev-remote");
}

和文件'b'是:

    if (SITE_STATUS == 'dev') {
    $prefix = "/020";
} elseif (SITE_STATUS == 'dev-remote') {
    $prefix = "";
}

在文件'a'中,require_once文件'b'在定义常量之后。

文件'b'无法识别文件'a'中设置的常量。难道我做错了什么?

编辑:在'a'页上正常工作

EDIT2:在页面'b'如果我在if语句之前键入(SITE_STATUS),我可以在页面'dev'上看到这意味着仍然定义了常量。

1 个答案:

答案 0 :(得分:0)

你可以试试这个:

if ($_SERVER['HTTP_HOST'] == 'localhost') 
{
    defined('SITE_STATUS') or define('SITE_STATUS', "dev");
} 
elseif ($_SERVER['HTTP_HOST'] == 'dev.xxx.com') 
{
    defined('SITE_STATUS') or define('SITE_STATUS', "dev-remote");
}
// add else
else 
{
    echo "I was not expecting you here :o ".$_SERVER['HTTP_HOST'];
}