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 {}.
|
|