2010-04-09 3 views
9

Если у меня есть некоторые классы PHP внутри пространства имен com\testИспользование несколько классов в других пространствах имен

и хотят импортировать все из них в другой файл PHP, как можно это сделать?

use com\test\ClassA 
use com\test\ClassB 
... 

use com\test\* дайте мне синтаксическую ошибку.

ответ

3

Это должно работать:

use com\test; 

$a = new \test\ClassA; 
$b = new \test\ClassB; 

или

use com\test\ClassA as ClassA; 
use com\test\ClassB as ClassB; 

$a = new ClassA; 
$b = new ClassB; 

См. PHP manual on Using namespaces: Aliasing/Importing.

+8

Очень скучный! Надежды PHP-разработчики поставят эту функцию. – xdevel2000

+1

Согласовано. Я понимаю, что это предотвращение именования коллизий, но, честно говоря, .NET, Java и другие делают это в течение многих лет. Неужели так сложно выбросить фатальную ошибку вместо того, чтобы заставить нас иметь уродливый синтаксис? –

1

Я думаю, что вы не можете сделать такую ​​вещь.

Вы можете сделать:

use com\test 

и обратитесь к классам в более позднее время, как:

test\ClassA 
test\ClassB 
3

Начиная с PHP 7.0 классы, функции и константы, импортируемые из одного и того же пространства имен, могут быть сгруппированы в одно применение.

Как это так:

use com\test\{ClassA, ClassB}; 

$a = new ClassA; 
$b = new ClassB; 
Смежные вопросы