【发布时间】:2010-10-27 07:46:57
【问题描述】:
我有一些类似于以下的 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 的代码的唯一部分。其余代码一次只加载一个文件。我使用常量的一个原因是我不必担心定义“全局”变量以便能够在函数内部访问它们。
【问题讨论】:
标签: php namespaces include