Я реализую пространства имен в существующем проекте. Я обнаружил, что вы можете использовать ключевое слово «use» для импорта классов в ваше пространство имен. Мой вопрос: могу ли я также импортировать все классы из 1 пространства имен в другое. Пример:
namespace foo { class bar { public static $a = 'foobar'; } } namespace { use \foo; //This doesn't work! echo bar::$a; }
Обновление для PHP 7+
Новая функция PHP 7 – это сгруппированные объявления. Это не так просто, как использование 1 'use statement' для всех классов в данном пространстве имен, но делает его несколько проще …
Пример кода:
<?php // Pre PHP 7 code use some\namespace\ClassA; use some\namespace\ClassB; use some\namespace\ClassC as C; // PHP 7+ code use some\namespace\{ClassA, ClassB, ClassC as C}; ?>
См. Также: https://secure.php.net/manual/en/migration70.new-features.php#migration70.new-features.group-use-declarations
Это невозможно в PHP.
Все, что вы можете сделать, это:
namespace Foo; use Bar; $obj = new Bar\SomeClassFromBar();