У меня есть код PHP, похожий на следующий:
foreach ($settingsarray as $settingsfile)
{
include ($settingsfile);
// do stuff here
}
$ settingsarray - это массив имен файлов из определенной папки.
Проблема в том, что каждый файл $ settings определяет константы (с одинаковыми именами), которые, конечно, не могут быть переопределены.
Какие существуют возможные способы предотвращения ошибок, возникающих в этой ситуации?
Можно выбрать два варианта: заменить все константы на переменные и использовать пространства имен PHP.
Однако я не уверен, как мне поступить с использованием пространств имен, для этого потребуется объявление в начале каждого файла $ settings? Есть ли способ выделения констант, ариаблей и функций без использования пространств имен?
Что бы мне действительно понравилось, так это возможность делать что-то такое простое, как:
foreach ($settingsarray as $settingsfile)
{
{//added braces to indicate where the isolation is
include ($settingsfile);
// do stuff here
}//what happens in here does not affect what happens outside of here
}
Должен отметить, что это часть новой функции и единственная часть кода, которая загружает все файлы $ settings. Остальная часть кода загружает только один файл за раз. Одна из причин, по которой я использую константы, заключается в том, что мне не нужно беспокоиться об определении переменных «глобально», чтобы иметь возможность доступа к ним внутри функций.