如何将命名空间"重置"为全局命名空间?给出以下代码:
namespace foo;
include 'myfile.php';
Run Code Online (Sandbox Code Playgroud)
myfile.php现在将尝试在foo命名空间中加载它的所有类,即使它的类在全局命名空间中.现在交换这些行的顺序并不是什么大不了的事,但是我如何处理有自动加载器的myfile.php?它将尝试在命名空间foo中加载类.
Jos*_*vis 12
命名空间基于每个文件工作.如果myfile.php没有声明任何命名空间,那么无论include使用哪个命名空间,其中的所有内容都将属于全局命名空间.
长话短说,namespace声明只适用于自己的文件,不包括.
myfile.php应该声明它想要的命名空间.如果你想确保myfile.php加载到全局命名空间,我相信你可以放
namespace // empty namespace means global
{
}
Run Code Online (Sandbox Code Playgroud)
围绕myfile.php的主体.确保使用大括号,否则您将重新定义包含myfile.php的文件的其余部分也在全局命名空间中.