我有一个配置文件,它包含在网站的每个部分中。它看起来或多或少是这样的(例如,我删除了很多不必要的行):
//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
有什么想法吗?事先谢谢大家。
我要在黑暗中拍摄。我敢肯定,你的问题的原因是你把这个文件包括在其他地方。通过使用include_once
,它将不会再次包含该文件,因为它以前已经包含过,但在导致未定义变量错误的另一个范围中。
如果您希望该配置阵列在全局范围内可用,可以使用$GLOBALS
,但这是一种糟糕的做法。