PHP - 包含变量的文件但在实现时显示UNDEFINED VARIABLE错误

时间:2014-10-06 17:10:23

标签: php undefined config

我有一个配置文件,包含在网站的每个部分。它看起来或多或少像这样(我删除了很多不必要的行代表):

//Company info
define("COMPANY_NAME", "Test Company");
define("COMPANY_EMAIL", "email@company.com");
define("META_KEYWORDS", "");
define("META_DESCRIPTION", "");

//**********************************************************************
//Remember to change this when working Local or on the Production Server
define("DB_SERVER", "127.0.0.1"); 
define("DB_USER", "root");
define("DB_PASSWORD", "");
define("DB_SELECTED_DB", "adminpanel");

config.php文件的其中一行包含:

$_ITEM_TYPES = array(
    1=>"admin",
    2=>"page",
    3=>"repository"
);

我在包含此config.php的文件中工作,我可以使用像COMPANY_NAME,COMPANY_EMAIL这样的常量......但是当我要使用$ _ITEM_TYPES数组时,它抛出一个未定义的变量错误:/

我已经使用了函数get_included_files(),确实包含了文件!我不知道为什么我不能使用这个阵列。

PHP文件 menu.php

include_once("../config.php");

echo COMPANY_NAME;
//Echoes the value correctly

var_dump($_ITEM_TYPES);
//Throws error

有什么想法吗?先谢谢大家。

1 个答案:

答案 0 :(得分:1)

我要在黑暗中拍摄。我99%确定您的问题的原因是您在其他地方包含此文件。通过使用include_once,它将不再包含该文件,因为它已包含在先前,但是在另一个范围内导致未定义的变量错误。

如果您希望该配置数组在全球范围内可用,则可以使用$GLOBALS,但这是不好的做法。