PHP: использование подпространства классов внутри пространства имен

Предположим, у меня есть пространство имен верхнего уровня \Outer
и у меня есть другое подпространство имен \Outer\Inner
и у меня есть другое пространство имен верхнего уровня \Inner

и в классе в \Outer я использую Inner как это

use Inner;

тогда какой Inner будет использоваться?

\Outer\Inner // ( sub-namespace )

или

\Inner  // ( top-level namespace )

Я запутался, потому что php сказал, что \ был необязательным для пространств имен верхнего уровня?

3

Решение

Когда у вас есть пространство имен \Outer в классе, то use Inner будет использовать Inner пространство имен верхнего уровня. Если вы хотите использовать подпространство имен, вы должны использовать
\Outer\Inner

Как указано в php используя пространства имен

Допустим, ваш первый файл был:

<?php
namespace Outer\Inner;

<?php
namespace Outer;

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

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]