Прочитал статью (в самом низу текст)
https://code.mu/ru/php/book/oop/namespaces/command-use/
Цитата
При использовании команды use можно указывать относительные пути, подобно тому, как мы это делали в предыдущем уроке. Давайте посмотрим на примере. Пусть мы подключаем некоторый класс:
namespace Core\Admin;
use \Core\Admin\Path\Router;
class Controller extends Router{}
Как вы видите, начало пространства имен подключаемого класса совпадает с текущим пространством. Это значит, что мы можем эту часть при подключении нашего класса, убрав при этом начальный обратный слеш:
namespace Core\Admin;
use Path\Router; // делаем относительный путь
class Controller extends Router{}
Пытаюсь повторить. Пишу свой код.
Код для примера. Я знаю, что не следует писать 2 пространства имен в одном файле.
Этот код в песочнице
https://onlinephp.io/c/b032a
namespace MyCompany\classes
{
// ЭТО РАБОТАЕТ
//use MyCompany\classes\addons\MyClass1; // Работает.
// use \MyCompany\classes\addons\MyClass1; // Работает.
// А ЭТО НЕ РАБОТАЕТ
// Так как начальная часть пути совпадает, мы можем его упростить.
use addons\MyClass1; // Error: Class 'addons\MyClass1' not found Странно, не работает!
$myClass1 = new MyClass1();
}
namespace MyCompany\classes\addons
{
class MyClass1
{
function __construct()
{
echo 'MyClass1 создан.';
}
}
}
Почему не работает вложенное пространство имен? Что я упустил (возможно, был не внимателен).