我的开发机器有一个不常见的问题。
她和我们在生产服务器上使用的一样,但出于某些原因,当我在我的vm上运行时,如
namespace NotWorking;
$foo = new DateTime();
它适用于我的本地计算机,但在我们的生产服务器上没有任何错误。
但是当我使用像:
这样的东西时namespace Working;
$foo = new \DateTime();
它有效。我们已经比较了我已知的所有设置,但是在php的构建中没有发现任何差异,甚至apatche都是相同的构建。
是否可以选择确认此“功能”?
答案 0 :(得分:2)
DateTime在全局命名空间中,并且由于“类名始终解析为当前命名空间名称”,您必须使用\ DateTime
您可以阅读更多相关信息here
如果您在本地名称空间中有一个与全局名称空间中的名称相同的类,则必须使用前缀\
,否则您只需要导入本地类。