Làm thế nào để tìm một lớp học trong php?
PHP có hằng số ma thuật Show
Ví dụ
Cho đến PHP 8. 0, hằng số ma thuật
Với PHP8. 0, bây giờ bạn có thể sử dụng hằng số
Kết quả tương tự như $object = new Foo\Bar(); echo $object::class; // Fatal error: Cannot use ::class with dynamic class name.1Hằng số 1
Không phải đối tượng không được phépKhông được phép sử dụng
Nếu bạn cần lấy kiểu của bất kỳ biến nào, PHP 8. 0 đi kèm với một hàm 5 mới mà bạn có thể gọi để lấy tên lớp, loại vô hướng, loại tài nguyên, v.v. tất cả từ một hàm tiện dụngTác động tương thích ngượcTrong các phiên bản PHP trước 8. 0, sử dụng Đôi khi bạn cần lấy tên lớp hoặc tên lớp cha của một đối tượng trong PHP để làm điều gì đó có điều kiện, v.v. Bài đăng này xem xét làm thế nào để làm điều này Các hàm có liên quan là get_class() và get_parent_class() và cả hai đều có thể được chuyển qua một thể hiện của đối tượng. Hàm get_parent_class() cũng có thể được truyền vào tên lớp. Cả hai sau đó sẽ trả về tên của lớp dưới dạng một chuỗi Ví dụ, chúng ta có hai lớp sau Sau đó, chúng tôi tạo một thể hiện của thanh $bar = new bar; Chúng ta có thể lấy tên lớp và tên lớp cha như vậy echo get_class($bar); // will echo 'bar' echo get_parent_class($bar); // will echo 'foo' echo get_parent_class('bar'); // will also echo 'foo' Lưu ý rằng việc chuyển tên lớp dưới dạng chuỗi tới get_class() sẽ không trả về tên lớp. Bạn đã biết tên lớp nếu bạn chuyển nó dưới dạng một chuỗi nên sẽ không có nhiều điểm khi gọi nó Nếu bạn đang gọi các hàm từ chính lớp đó, bạn có thể chuyển nó $this. Ví dụ, chúng ta sẽ định nghĩa lại các lớp trên như sau Hàm get_class() lấy tên lớp của một đối tượng. Nó trả về FALSE nếu đối tượng không phải là đối tượng. Nếu đối tượng bị loại trừ khi ở trong một lớp, tên của lớp đó được trả về cú phápget_class(object) Thông số
Trở lạiHàm get_class() trả về tên lớp của một đối tượng. Nó trả về FALSE nếu đối tượng không phải là đối tượng. Nếu đối tượng bị loại trừ khi ở trong một lớp, tên của lớp đó được trả về 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, PHP 2 hằng số và phương thức 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 PHPBạ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à 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 4 sẽ trả về tên lớp của lớp được liên kết
đầu ra
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à 6Ví dụ mã tiếp theo cho thấy cách lấy tên lớp trong phương thức lớp
đầu ra
Sử dụng hằng số YourNameSpace\HelloClassName 2 để lấy tên lớp trong PHPHằng số 2 là một phần của hằng số được xác định trước trong 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ố 2
đầu ra Sử dụng hàm YourNameSpace\HelloClassName 3 để lấy tên lớp trong PHPPHP cung cấp một hàm 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 2Để lấy tên lớp, bạn tạo một đối tượng từ lớp;
đầu ra Lúc đầu, đối với kiểu OOP, bạn có thể trả về hàm 3 từ một lớp tĩnh
đầ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 5Hàm 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
Sử dụng Lớp phản chiếu để lấy tên lớp trong PHPReflection 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 đặt đối số của nó thành 7. Sau đó, bạn có thể lấy tên lớp thông qua phương thức 8 có sẵn với lớp Reflection
đầu ra Sử dụng getClassName(); ?> 9 trên đối tượng để lấy tên lớp trong PHPTính năng 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 9
Làm cách nào để kiểm tra lớp của một đối tượng trong PHP?Từ khóa instanceof dùng để kiểm tra xem một đối tượng có thuộc một lớp hay không. Phép so sánh trả về true nếu đối tượng là một thể hiện của lớp, nó trả về false nếu không phải.
Làm cách nào để xác định tên lớp trong PHP?Tên lớp có thể là bất kỳ nhãn hợp lệ nào, miễn là nó không phải là từ dành riêng cho PHP. Tên lớp hợp lệ bắt đầu bằng một chữ cái hoặc dấu gạch dưới, theo sau là một số chữ cái, số hoặc dấu gạch dưới bất kỳ . Là một biểu thức chính quy, nó sẽ được thể hiện như vậy. ^[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*$.
Các lớp trong PHP là gì?Các lớp là bản thiết kế của các đối tượng . Một trong những điểm khác biệt lớn giữa hàm và lớp là lớp chứa cả dữ liệu (biến) và hàm tạo thành một gói được gọi là. 'sự vật'. Lớp là kiểu dữ liệu do lập trình viên định nghĩa, bao gồm các phương thức cục bộ và biến cục bộ.
Làm cách nào để lấy tên lớp PHP mà không có không gian tên?Bạn có thể sử dụng ReflectionClass. getShortName lấy tên của lớp mà không có không gian tên của nó. |