使用PHP
命名空间时,您是否像这样使用它们:
\Foo\Bar->method()
或者
Foo\Bar->method()
请注意,差异只是一个前导斜线。或者两者都是有效的,并且意味着不同的东西?
谢谢。
使用PHP
命名空间时,您是否像这样使用它们:
\Foo\Bar->method()
或者
Foo\Bar->method()
请注意,差异只是一个前导斜线。或者两者都是有效的,并且意味着不同的东西?
谢谢。
前导的使用\
类似于文件系统中的绝对路径和相对路径。最好用代码解释:
namespace test;
$dt = new DateTime();
失败,因为我们使用的是相对路径(没有前导\
)和当前命名空间test
。DateTime
在这个虚构的命名空间中没有类。
namespace test;
$dt = new \DateTime();
就像我们使用绝对命名空间路径一样工作。就像DateTime
在全局命名空间中\
一样,它将被找到。
在PHP 手册中查找有关命名空间的更多信息
这取决于您的需求。
\Foo\Bar::method(); // will search class in root namespace
或者
Foo\Bar::method(); // will search class in current namespace
两个表达式都有效。但是做不同的事情。