导入名称空间时,“使用”是否需要\ backslash前缀?

时间:2018-12-20 18:59:03

标签: php namespaces

两者都很好:

use \Vendor\Package\Foo;

use Vendor\Package\Foo;


但是我总是在内联名称空间声明中使用\前缀(因此它始于根名称空间),例如:

function Bar ()
{
    return \Vendor\Package\Foo();
}

在导入名称空间时使用use前缀或不使用前缀\的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

对于用于导入use前缀的\语句是不必要的。 \前缀仅在处于命名空间的上下文中并且要使用与当前命名空间无关的命名空间时才需要(例如,使用全局命名空间中的类)。导入始终期望FQN,并且它们永远与当前名称空间无关:

  

请注意,对于命名空间名称(包含命名空间分隔符的完全限定的命名空间名称,例如Foo\Bar而不是不包含全局名称的全局名称,例如FooBar),不需要使用前导反斜杠,因此不建议,因为导入名称必须完全合格,并且不会相对于当前名称空间进行处理。

     

http://php.net/manual/en/language.namespaces.importing.php