我的开发机器有一个不常见的问题。
她与我们在生产服务器上使用的相同,但由于某种原因,当我在我的虚拟机上运行时,比如
namespace NotWorking;
$foo = new DateTime();
它可以在我的本地计算机上运行,但在我们的生产服务器上失败且没有任何错误。
但是当我使用类似的东西时:
namespace Working;
$foo = new \DateTime();
它有效。我们比较了我已知的所有设置,但没有发现 php 的构建有任何差异,甚至 apatche 也是相同的构建。
是否有选项可以强制执行此“功能”?
最佳答案
DateTime 位于全局命名空间中,并且由于“类名称始终解析为当前命名空间名称”,因此您必须使用\DateTime
您可以阅读更多相关信息here
如果本地命名空间中的类与全局命名空间中的类同名,则必须添加前缀 \
,否则只会导入本地类。
关于相同配置上的 PhP namespace ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16196052/