我有类似下面的一些PHP代码:“命名空间”,常量和多个PHP包括
foreach ($settingsarray as $settingsfile)
{
include ($settingsfile);
// do stuff here
}
$ settingsarray是文件名从特定文件夹中的数组。
问题是,每个$ settingsfile定义的常量(具有相同的名称),当然,这是不能重新定义的。
有什么可能的方法来防止在这种情况下发生错误?
我能想到的两个选项包括将所有常量改为变量并使用PHP命名空间。
但是,我不知道如何去使用名称空间,它需要在每个$ settingsfile的开始声明?有没有使用名称空间隔离常量,可执行文件和函数的方法?
我真的很喜欢,是能够做简单的东西:
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
}
我应该注意,这是一个新的功能的一部分,并且是代码的唯一部分加载所有$ settingsfiles。其余的代码一次只加载一个文件。我使用常量的一个原因是,我不必担心将变量“全局”定义为能够在函数内部访问它们。
你有我想要做的正确。解决方案,我不想听到。 (程序实际上非常复杂,这个代码来自一个新的特性,其余的代码只在特定的时间加载一个设置文件,把所有的常量改为变量将意味着改变所有的休息的代码以及...) – Alya 2009-05-19 14:19:46