2013-04-24 93 views
2

我的开发机器有一个不常见的问题。相同配置的PhP名称空间

她是我们使用的生产服务器上是相同的,但由于某些原因,当我在我的虚拟财产以后运行像

namespace NotWorking; 

$foo = new DateTime(); 

它的工作我的本地计算机上,但未能不用其他我们的生产服务器上的任何错误。

但是当我使用的财产以后,如:

namespace Working; 

$foo = new \DateTime(); 

它的工作原理。我们比较了已知的所有设置,但没有发现从PHP构建任何差异,甚至apatche是相同的构建。

有没有一个选项可以支持这个“功能”?

回答

2

日期时间是在全局命名空间,并为“类名称总是解析到当前命名空间名称”你必须使用\日期时间

你可以阅读更多关于它here

如果你有一个类名称与全局名称空间中的名称相同,则必须以\为前缀,否则您只需导入本地类。

+0

奇怪的是我没有一个这样的类叫。而且它在一台机器上工作得很好,但在另一台机器上工作得不错。你的好的参考点。 – Sangoku 2013-04-24 15:46:06

+0

@Sangoku无论你是什么机器,你都应该对所有本地PHP类使用反斜线。它在你的本地机器上工作的情况有点奇怪 - 但可能是由于当前命名空间与全局命名空间相同... – shadyyx 2013-04-24 15:49:13

+0

@shadyyx说Sangoku确保你使用'\'这很奇怪,为什么它工作在你的机器:) – 2013-04-24 15:51:27

相关问题