Файл с переменной включен, но показывает ошибку UNDEFINED VARIABLE при реализации

У меня есть файл конфигурации, который включен в каждую часть сайта. Это выглядит примерно так (я убрал много лишних строк для примера):

//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

Решение

Я собираюсь снимать в темноте здесь. Я на 99% уверен, что причина вашей проблемы в том, что вы включаете этот файл где-то еще. Используя include_once он не будет включать файл снова, потому что он был включен ранее, однако в другой области, которая вызывает неопределенную переменную ошибку.

Если вы хотите, чтобы этот массив конфигурации был доступен глобально, вы можете использовать $GLOBALS, но это плохая практика.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector