6

使用PHP 命名空间时,您是否像这样使用它们:

\Foo\Bar->method()

或者

Foo\Bar->method()

请注意,差异只是一个前导斜线。或者两者都是有效的,并且意味着不同的东西?

谢谢。

4

2 回答 2

7

前导的使用\类似于文件系统中的绝对路径和相对路径。最好用代码解释:

namespace test;
$dt = new DateTime();

失败,因为我们使用的是相对路径(没有前导\)和当前命名空间testDateTime在这个虚构的命名空间中没有类。

namespace test;
$dt = new \DateTime();

就像我们使用绝对命名空间路径一样工作。就像DateTime在全局命名空间中\一样,它将被找到。

在PHP 手册中查找有关命名空间的更多信息

于 2013-05-08T02:20:40.057 回答
2

这取决于您的需求。

\Foo\Bar::method(); // will search class in root namespace

或者

Foo\Bar::method(); // will search class in current namespace

两个表达式都有效。但是做不同的事情。

于 2013-05-08T02:20:56.137 回答