Предположим, у меня есть пространство имен верхнего уровня \Outer
и у меня есть другое подпространство имен \Outer\Inner
и у меня есть другое пространство имен верхнего уровня \Inner
и в классе в \Outer
я использую Inner
как это
use Inner;
тогда какой Inner будет использоваться?
\Outer\Inner // ( sub-namespace )
или
\Inner // ( top-level namespace )
Я запутался, потому что php сказал, что \
был необязательным для пространств имен верхнего уровня?
Когда у вас есть пространство имен \Outer
в классе, то use Inner
будет использовать Inner
пространство имен верхнего уровня. Если вы хотите использовать подпространство имен, вы должны использовать
\Outer\Inner
Как указано в php используя пространства имен
Допустим, ваш первый файл был:
<?php
namespace Outer\Inner;
<?php
namespace Outer;
/* Qualified name */
Inner\foo(); // resolves to function Outer\Inner\foo
Других решений пока нет …