PHP名称空间是否与前导斜杠一起使用

时间:2013-05-08 02:14:04

标签: php namespaces

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

\Foo\Bar->method()

Foo\Bar->method()

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

感谢。

2 个答案:

答案 0 :(得分:5)

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

namespace test;
$dt = new DateTime();

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

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

正如我们使用绝对名称空间路径一样。由于DateTime位于全局命名空间\中,因此可以找到它。

PHP manual about namespaces

中查找更多信息

答案 1 :(得分:2)

这取决于您的需求。

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

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

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