Namespaces là gì
Không thể tạo cùng tên file ở cùng một thư mục trong Windows (hay linux), nhưng có thể tạo hai file cùng tên ở hai thư mục khác nhau. PHP cũng có khái niệm namespaces, để giải quyết tình trạng đặt hai tên class
trùng nhau.
Hay namespaces là cách để nhóm các class
, interface
, function
, constant
lại thành một nhóm.
Ví dụ chúng ta có thể tạo hai class
cùng tên với nội dung khác nhau khi chúng ở các namespace
khác nhau.
|
|
Cách viết namespace
Các namespace
chỉ ảnh hưởng tới các loại sau: class
(bao gồm class trừu tượng và trait
), interface
, hàm và hằng. Khi khai báo namespace
, trước khi mở <?php
thì không có khoảng cách hoặc dòng code nào khác. Giống như folder trong máy tính, tên namespace có thể đặt theo cấp cách nhau bởi dấu \
.
Ở ví dụ sau sẽ bị lỗi, để loại bỏ lỗi này hãy xóa dòng đầu tiên có dòng code <html>
.
|
|
Định nghĩa namespace ở cùng một file
Mặc dù không khuyến khích sử dụng tuy nhiên nhiều namespace
cũng có thể ở trên cùng một file. Như ví dụ đầu tiên đã sử dụng, ngoài ra còn có thể sử dụng namespace
với dấu {}
như sau:
|
|
Khi không muốn sử dụng namespace nào (global code) thì chúng ta có thể sử dụng với tên namespace là rỗng như sau.
|
|
Ngoài ra không có đoạn code nào ngoài đoạn code namespace {}
.
|
|