使用PHP
命名空间时,您是否使用它们:
\Foo\Bar->method()
或
Foo\Bar->method()
请注意,差异只是一个主要的斜杠。或者两者都有效,并且意味着不同的东西?
感谢。
答案 0 :(得分:5)
前导\
的用法类似于文件系统中的绝对路径和相对路径。最好用代码解释:
namespace test;
$dt = new DateTime();
失败,因为我们使用的是相对路径(没有前导\
)和当前命名空间test
。在这个虚构的命名空间中没有类DateTime
。
namespace test;
$dt = new \DateTime();
正如我们使用绝对名称空间路径一样。由于DateTime
位于全局命名空间\
中,因此可以找到它。
答案 1 :(得分:2)
这取决于您的需求。
\Foo\Bar::method(); // will search class in root namespace
或
Foo\Bar::method(); // will search class in current namespace
两个表达式都有效。但做不同的事情。