Không gian tên PHP
Không gian tên là vòng loại giải quyết hai vấn đề khác nhau:
- Họ cho phép tổ chức tốt hơn bằng cách nhóm các lớp làm việc cùng nhau để thực hiện một nhiệm vụ
- Chúng cho phép cùng tên được sử dụng cho nhiều hơn một lớp
Ví dụ, bạn có thể có một tập hợp các lớp mô tả bảng HTML, chẳng hạn như bảng, hàng và ô trong khi cũng có một bộ lớp khác để mô tả đồ nội thất, như bàn, ghế và giường. Không gian tên có thể được sử dụng để tổ chức các lớp thành hai nhóm khác nhau trong khi cũng ngăn hai bảng hai lớp và bảng bị trộn lẫn.
Tuyên bố một không gian tên
Các không gian tên được khai báo ở đầu tệp bằng từ khóa namespace
:
Cú pháp
Tuyên bố một không gian tên được gọi là HTML:
Lưu ý: Tuyên bố namespace
phải là điều đầu tiên trong tệp PHP. Mã sau sẽ không hợp lệ: A namespace
declaration must be the first thing in the PHP file. The following code would
be invalid:
Hằng số, lớp và chức năng được khai báo trong tệp này sẽ thuộc về không gian tên HTML:Html namespace:
Thí dụ
Tạo một lớp bảng trong không gian tên HTML:
Tiêu đề = "Bảng của tôi"; $ Bảng-> NUMROWS = 5;?>
namespace Html;
class Table {
public $title = "";
public $numRows = 0;
public function message[] {
echo "
Table '{$this->title}' has {$this->numRows} rows.
";}
}
$table = new Table[];
$table->title = "My table";
$table->numRows = 5;
?>
thông điệp[]; ?>
$table->message[];
?>
Hằng số, lớp và chức năng được khai báo trong tệp này sẽ thuộc về không gian tên HTML:
Thí dụ
Cú pháp
Tuyên bố một không gian tên được gọi là HTML:
Lưu ý: Tuyên bố namespace
phải là điều đầu tiên trong tệp PHP. Mã sau sẽ không hợp lệ:
Any code that follows a namespace
declaration is operating inside the namespace, so classes that belong to the namespace can be instantiated without any qualifiers. To access classes from outside a namespace, the class needs to have the namespace attached to it.
Thí dụ
Tạo một lớp bảng trong không gian tên HTML:
Hằng số, lớp và chức năng được khai báo trong tệp này sẽ thuộc về không gian tên HTML:
Thí dụ
Thí dụ
Tạo một lớp bảng trong không gian tên HTML:
Hằng số, lớp và chức năng được khai báo trong tệp này sẽ thuộc về không gian tên HTML:
Thí dụ
Tạo một lớp bảng trong không gian tên HTML:
Thí dụ
Tạo một lớp bảng trong không gian tên HTML:
Hằng số, lớp và chức năng được khai báo trong tệp này sẽ thuộc về không gian tên HTML:
Thí dụ
Tạo một lớp bảng trong không gian tên HTML:
Hằng số, lớp và chức năng được khai báo trong tệp này sẽ thuộc về không gian tên HTML:
Không gian tên là để tránh các vụ va chạm tên lớp, vì vậy bạn có thể có hai tên lớp giống nhau trong hai không gian tên khác nhau. Sử dụng giống như PHP bao gồm. Vui lòng đăng nhập hoặc tạo tài khoản để tham gia vào cuộc trò chuyện này.
Tôi có thể sử dụng hai không gian tên trong PHP không?
Trong thế giới PHP, các không gian tên được thiết kế để giải quyết hai vấn đề mà các tác giả của thư viện và ứng dụng gặp phải khi tạo các yếu tố mã có thể sử dụng lại như các lớp hoặc chức năng:
- Tên va chạm giữa mã bạn tạo và các lớp PHP nội bộ/chức năng/hằng số hoặc các lớp/chức năng/hằng số của bên thứ ba.
- Khả năng bí danh [hoặc rút ngắn] Extra_long_names được thiết kế để giảm bớt vấn đề đầu tiên, cải thiện khả năng đọc của mã nguồn.
Không gian tên PHP cung cấp một cách để nhóm các lớp, giao diện, chức năng và hằng số liên quan đến nhóm. Dưới đây là một ví dụ về cú pháp không gian tên trong PHP:
Ví dụ #1 Syntax Syntax Ví dụ
namespace
2
Lưu ý: Tên không gian tên không nhạy cảm trường hợp.: Namespace names are case-insensitive.
Ghi chú::
Tên không gian tên
namespace
3 và tên ghép bắt đầu bằng tên này [nhưnamespace
4] được dành riêng để sử dụng ngôn ngữ nội bộ và không nên được sử dụng trong mã không gian người dùng.
Stevewa ¶ ¶
11 năm trước
namespace
5
namespace
6
namespace
7
namespace
8
namespace
9
namespace
0Dmitry Snytkine ¶ ¶
11 năm trước
namespace
1
namespace
2
namespace
0Dmitry Snytkine ¶ ¶
pierstoval tại gmail dot com
namespace
4
namespace
5
namespace
6
namespace
7
namespace
8
namespace
9
namespace
0
namespace
1
namespace
2
namespace
3
namespace
47 năm trước ¶
Shewa12kpi tại Gmail Dot Com ¶
namespace
5
namespace
6
namespace
7Tonymarston tại Tonymarston Dot Net ¶ ¶
1 năm trước
namespace
8
namespace
9
namespace
0asma.mechtaba ¶ ¶
9 tháng trước
use
1
Ẩn danh ¶ ¶
1 năm trước
use
2
use
3
use
4
namespace
0