我有一个配置文件,包含在网站的每个部分。它看起来或多或少像这样(我删除了很多不必要的行代表):
//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
有什么想法吗?先谢谢大家。
答案 0 :(得分:1)
我要在黑暗中拍摄。我99%确定您的问题的原因是您在其他地方包含此文件。通过使用include_once
,它将不再包含该文件,因为它已包含在先前,但是在另一个范围内导致未定义的变量错误。
如果您希望该配置数组在全球范围内可用,则可以使用$GLOBALS
,但这是不好的做法。