Требует ли «use» префикс \ backslash при импорте пространства имен? - PullRequest
0 голосов
/ 20 декабря 2018

Оба работают просто отлично:

use \Vendor\Package\Foo;

use Vendor\Package\Foo;


Но я всегда использую префикс \ во встроенных объявлениях пространства имен (так чтоначинается в корневом пространстве имен), например:

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

Как правильно использовать use при импорте пространства имен, с префиксом \ или без?

1 Ответ

0 голосов
/ 29 декабря 2018

Для use операторов, используемых для импорта, префикс \ не требуется.Префикс \ необходим только в том случае, если вы находитесь в контексте пространства имен и хотите использовать пространство имен, не относящееся к текущему пространству имен (например, используя класс из глобального пространства имен).Импорт всегда ожидает FQN и никогда не относится к текущему пространству имен:

Обратите внимание, что для имен с пространством имен (полностью квалифицированные имена пространства имен, содержащие разделитель пространства имен, например Foo\Bar, в отличие от глобальных имен, которые не, например FooBar), начальная обратная косая черта не нужна и не рекомендуется, поскольку имена импорта должны быть полностью квалифицированными и не обрабатываться относительно текущего пространства имен.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...