2014-09-03 3 views
0

У меня есть пространство имен с именем Foo. Внутри пространства имен существуют различные классы, скажем, Bar и Baz.использовать все классы в пространстве имен

В каком-то другом файле я хотел бы использовать пространство имен Foo и тем самым получить доступ ко всем его классам без префикса их с помощью \Foo\ClassName.

То, что я пытался сделать, в верхней части сценария:

use Foo; 

А потом просто сделать что-то вроде:

$bar = new Bar; 

Однако, когда я пытаюсь это, я получаю error: The use statement with non-compound name 'Foo' has no effect, что в конечном итоге приведет к тому, что я должен указать каждый класс, который я хочу использовать заранее. Есть ли обходной путь?

ответ

1

PHP use keyword не работает как C++ using namespace; в том смысле, что вы не можете включить полное пространство имен. Вы можете использовать его или включать в каждый класс.

Если вы хотите сделать new Bar;, вы должны сделать что-то вроде этого:

use Foo\Bar; 

Вы должны были бы сделать это для каждого класса нужно в пространстве имен Foo. Насколько я знаю, нет обходного пути.

+0

У вас есть решение? Я думал о include ("models.viewmodels.php"), который внутри имел бы список всех пространств имен использования – Jimmyt1988

Смежные вопросы