相同配置上的PhP名称空间

相同配置上的PhP名称空间,php,configuration,namespaces,Php,Configuration,Namespaces,我的开发机器有一个不寻常的问题 她和我们在生产服务器上使用的一样,但由于某种原因,当我在虚拟机上运行时 namespace NotWorking; $foo = new DateTime(); 它在我的本地机器上工作,但在我们的生产服务器上没有任何错误的情况下失败 但当我使用诸如: namespace Working; $foo = new \DateTime(); 它起作用了。我们已经比较了我所知道的所有设置,但没有发现与php构建的任何差异,甚至Apache也是相同的构建 是否有实施

我的开发机器有一个不寻常的问题

她和我们在生产服务器上使用的一样,但由于某种原因,当我在虚拟机上运行时

namespace NotWorking;

$foo = new DateTime();
它在我的本地机器上工作,但在我们的生产服务器上没有任何错误的情况下失败

但当我使用诸如:

namespace Working;

$foo = new \DateTime();
它起作用了。我们已经比较了我所知道的所有设置,但没有发现与php构建的任何差异,甚至Apache也是相同的构建


是否有实施此“功能”的选项?

DateTime位于全局命名空间中,由于“类名始终解析为当前命名空间名”,因此必须使用\DateTime

你可以阅读更多关于它的内容


如果本地名称空间中的类与全局名称空间中的类具有相同的名称,则必须使用前缀
\
,否则只需导入本地类。

问题是,我没有这样调用的类。它在一台机器上工作正常,但在另一台机器上却不能。这是一个很好的参考点。@Sangoku您应该始终对所有本机PHP类使用反斜杠,无论您在哪台机器上。它在本地机器上运行良好的情况有点奇怪-但可能是因为当前的名称空间与全局名称空间相同…@shadyyx well说Sangoku确保你使用“\”这是奇怪的,为什么它在你的机器上运行:)我同意你应该像前面所说的那样使用,但我没有在一台机器上出现这种wierd错误。每个开发人员都有自己的VM,我们有一个用于测试目的的alpha机器。这两件衣服都是这样的。而且它很容易滑倒,当你去现场的时候!忘了再提一件事。千台机器在设置中都是相同的!相同的php版本相同的ini相同的所有。。。用于测试目的。