2010-04-09 32 views
9

Nếu tôi có một số lớp học php bên trong một không gian tên com\testSử dụng nhiều lớp trong không gian tên khác

và muốn nhập khẩu tất cả chúng vào một tập tin php như thế nào có thể làm điều đó?

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

use com\test\* cho tôi lỗi cú pháp.

Trả lời

3

này nên làm việc:

use com\test; 

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

hoặc

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

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

Xem PHP manual on Using namespaces: Aliasing/Importing.

+8

Rất nhàm chán! Hy vọng các nhà phát triển PHP sẽ đặt tính năng đó. – xdevel2000

+1

Đồng ý. Tôi nhận ra rằng nó là để ngăn chặn va chạm đặt tên nhưng trung thực - NET, Java, và những người khác đã làm nó trong nhiều năm. Là nó khó khăn như vậy để ném một lỗi nghiêm trọng thay vì buộc chúng tôi phải có cú pháp xấu xí? –

1

Tôi nghĩ bạn không thể làm điều đó.

Bạn có thể làm:

use com\test 

và tham khảo các lớp học của bạn tại thời gian sau đó như:

test\ClassA 
test\ClassB 
3

Từ PHP 7.0 trở đi, các lớp, hàm và hằng số được nhập từ cùng một không gian tên có thể được nhóm lại với nhau trong một câu lệnh sử dụng duy nhất.

Giống như theo cách này:

use com\test\{ClassA, ClassB}; 

$a = new ClassA; 
$b = new ClassB; 
Các vấn đề liên quan