PHP:在命名空间

时间:2016-01-27 07:20:52

标签: php namespaces name-collision

假设我有一个顶级命名空间\Outer 我有另一个子命名空间\Outer\Inner 我有另一个顶级命名空间\Inner

\Outer的课程中我使用Inner这样的

use Inner;

然后将使用哪个内部?

\Outer\Inner // ( sub-namespace )

\Inner  // ( top-level namespace )

我很困惑,因为php说\对于顶级命名空间是可选的吗?

1 个答案:

答案 0 :(得分:1)

如果某个类中有名称空间\Outer,那么use Inner将使用Inner顶级名称空间。如果要使用子名称空间,则应使用 \Outer\Inner

如php using namespaces

中所述

让我们说你的第一个文件是:

<?php
namespace Outer\Inner;
<?php
 namespace Outer;

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