Hướng dẫn này sẽ thảo luận về cách lấy tên lớp PHP với độ phân giải tên lớp, hằng số PHP
YourNameSpace\HelloClassName
2 và phương thức YourNameSpace\HelloClassName
3. Bạn sẽ học cách sử dụng nó để phân giải tên lớp trong và ngoài lớpSử dụng Độ phân giải tên lớp để lấy tên lớp trong PHP
Bạn có thể lấy tên lớp thông qua độ phân giải tên lớp khi bạn có một không gian tên trong mã của mình. Kết quả là Tên Lớp Đủ Điều kiện [FQCN]
Tính năng này có sẵn trong PHP là
YourNameSpace\HelloClassName
4. Nó rất hữu ích khi bạn có một không gian tên trong PHP của mìnhTrong ví dụ mã sau, phân giải tên lớp thông qua
YourNameSpace\HelloClassName
4 sẽ trả về tên lớp của lớp được liên kết
đầu ra
YourNameSpace\HelloClassName
Nếu bạn muốn sử dụng tính năng này trong phương thức lớp, bạn có thể lấy tên lớp thông qua phương thức tĩnh. Bạn sẽ viết cái này là
YourNameSpace\HelloClassName
6Ví dụ mã tiếp theo cho thấy cách lấy tên lớp trong phương thức lớp
getClassName[];
?>
đầu ra
YourNameSpace\HelloClassName
Sử dụng hằng số YourNameSpace\HelloClassName
2 để lấy tên lớp trong PHP
YourNameSpace\HelloClassName
Hằng số
YourNameSpace\HelloClassName
2 là một phần của hằng số được xác định trước PHP. Bạn có thể sử dụng nó trong một lớp để lấy tên lớpĐoạn mã sau sẽ lấy tên lớp thông qua hằng số
YourNameSpace\HelloClassName
2YourNameSpace\HelloClassName
2đầu ra
Sử dụng hàm YourNameSpace\HelloClassName
3 để lấy tên lớp trong PHP
YourNameSpace\HelloClassName
PHP cung cấp một hàm
YourNameSpace\HelloClassName
3. Hàm này sẽ trả về tên lớp. Bạn có thể sử dụng nó trong lập trình thủ tục và hướng đối tượng. Đầu tiên, chúng ta sẽ xem xét phong cách thủ tụcKhối mã tiếp theo định nghĩa một lớp với một chức năng duy nhất. Hàm bên trong lớp sẽ trả về tên lớp khi đối số của nó là từ khóa
getClassName[];
?>
2Để lấy tên lớp, bạn tạo một đối tượng từ lớp;
YourNameSpace\HelloClassName
7đầu ra
Lúc đầu, đối với kiểu OOP, bạn có thể trả về hàm
YourNameSpace\HelloClassName
3 từ một lớp tĩnhYourNameSpace\HelloClassName
9đầu ra
Phương pháp này có những hạn chế của nó bởi vì khi bạn mở rộng lớp, lớp mở rộng sẽ trả về tên của lớp cha chứ không phải lớp mở rộng. Để giải quyết vấn đề này, bạn có thể sử dụng
getClassName[];
?>
5Hàm
getClassName[];
?>
6 dựa trên liên kết tĩnh muộn. Với chức năng này, PHP sẽ trả về tên của lớp gọi. Nó giải quyết tình huống lớp mở rộng trả về tên của lớp cha chứ không phải tên của chính nó
đầu ra
YourNameSpace\HelloClassName
3Sử dụng Lớp phản chiếu để lấy tên lớp trong PHP
Reflection Class là một cách ngắn gọn để lấy tên lớp trong PHP. Bạn tạo một lớp;
Lớp Reflection nên có đối số được đặt thành
getClassName[];
?>
7. Sau đó, bạn có thể lấy tên lớp thông qua phương thức getClassName[];
?>
8 có sẵn với lớp ReflectionYourNameSpace\HelloClassName
6đầu ra
Sử dụng getClassName[];
?>
9 trên đối tượng để lấy tên lớp trong PHP
getClassName[];
?>
Tính năng
getClassName[];
?>
9 hoạt động trên các lớp trước PHP 8. Kể từ PHP, khi bạn tạo một đối tượng từ một lớp, bạn có thể lấy tên lớp từ đối tượng đã tạo bằng getClassName[];
?>
9 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 tập hợp các lớp khác để mô tả đồ nội thất, chẳng hạn 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 đồng thời ngăn không cho hai lớp Bảng và Bảng bị trộn lẫn
Khai báo một Namespace
Không gian tên được khai báo ở đầu tệp bằng từ khóa
YourNameSpace\HelloClassName
0cú pháp
Khai báo một không gian tên gọi là Html
Ghi chú. Khai báo
YourNameSpace\HelloClassName
0 phải là điều đầu tiên trong tệp PHP. Đoạn mã sau sẽ không hợp lệecho "Xin chào thế giới. ";
không gian tên Html;
.
?>
Các hằng, lớp và hàm được khai báo trong tệp này sẽ thuộc về không gian tên Html
Ví dụ
Tạo một lớp Bảng trong không gian tên Html
không gian tên Html;
Bảng lớp {
public $title = "";
public $numRows = 0
public function message[] {
echo "
Bảng '{$this->title}' có {$this->numRows} hàng
";}
}
$table = new Table[];
$table->title = "My table";
$table->numRows = 5;
?>
$table->message[];
?>
Đối với tổ chức hơn nữa, có thể có các không gian tên lồng nhau
cú pháp
Khai báo một không gian tên có tên là Html bên trong một không gian tên có tên là Code
không gian tên Mã\Html;
?>
Sử dụng không gian tên
Bất kỳ mã nào tuân theo khai báo
YourNameSpace\HelloClassName
0 đều hoạt động bên trong không gian tên, vì vậy các lớp thuộc về không gian tên có thể được khởi tạo mà không cần bất kỳ vòng loại nào. Để truy cập các lớp từ bên ngoài một không gian tên, lớp cần phải có không gian tên được đính kèm với nóVí dụ
Sử dụng các lớp từ không gian tên Html
$table = new Html\Table[]
$row = new Html\Row[];
?>
Khi nhiều lớp từ cùng một không gian tên đang được sử dụng cùng một lúc, việc sử dụng từ khóa
YourNameSpace\HelloClassName
0 sẽ dễ dàng hơnVí dụ
Sử dụng các lớp từ không gian tên Html mà không cần Html\qualifier
không gian tên Html;
$table = new Table[];
$row = new Row[];
?>
Bí danh không gian tên
Có thể hữu ích khi đặt bí danh cho một không gian tên hoặc lớp để dễ viết hơn. Điều này được thực hiện với từ khóa
YourNameSpace\HelloClassName
4