PHP:在命名空间中使用子命名空间类

3
假设我有一个顶级命名空间\Outer,还有一个子命名空间\Outer\Inner,以及另一个顶级命名空间\Inner

\Outer的类中,我会像这样使用Inner

use Inner;

那么将使用哪个 Inner?
\Outer\Inner // ( sub-namespace )

或者这个
\Inner  // ( top-level namespace )

我感到困惑,因为PHP表示顶级命名空间中的\是可选的。

"use Inner" 和"use \Inner"是不同的。前者是Outer命名空间的子命名空间,而后者是顶级命名空间。 - Haridarshan
可能是如何在PHP中实现嵌套命名空间?的重复问题。 - Narendrasingh Sisodia
1个回答

1
当你在一个类中有命名空间\Outer,那么use Inner将使用顶级命名空间Inner。如果你想使用子命名空间,你应该使用\Outer\Inner
如php 使用命名空间所述。
假设你的第一个文件是:
<?php
namespace Outer\Inner;

<?php
 namespace Outer;

/* Qualified name */
Inner\foo(); // resolves to function Outer\Inner\foo    

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接