PHP lấy tên lớp từ đối tượng
Giả sử chúng ta có một lớp tên là Fruit. Một Trái cây có thể có các thuộc tính như tên, màu sắc, trọng lượng, v.v. Chúng ta có thể định nghĩa các biến như $name, $color và $weight để giữ các giá trị của các thuộc tính này Show
Khi các đối tượng riêng lẻ (táo, chuối, v.v.). ) được tạo ra, chúng kế thừa tất cả các thuộc tính và hành vi từ lớp, nhưng mỗi đối tượng sẽ có các giá trị khác nhau cho các thuộc tính Xác định một lớpMột lớp được định nghĩa bằng cách sử dụng từ khóa cú pháplớp trái cây { Dưới đây chúng ta khai báo một lớp có tên là Fruit bao gồm hai thuộc tính ($name và $color) và hai phương thức set_name() và get_name() để thiết lập và lấy thuộc tính $name lớp trái cây { // Phương thức Ghi chú. Trong một lớp, các biến được gọi là thuộc tính và hàm được gọi là phương thức Xác định đối tượngCác lớp không là gì nếu không có đối tượng. Chúng ta có thể tạo nhiều đối tượng từ một lớp. Mỗi đối tượng có tất cả các thuộc tính và phương thức được định nghĩa trong lớp, nhưng chúng sẽ có các giá trị thuộc tính khác nhau Các đối tượng của một lớp được tạo bằng từ khóa Trong ví dụ dưới đây, $apple và $banana là các thể hiện của lớp Fruit Thí dụlớp trái cây { // Phương thức $apple = trái cây mới(); tiếng vang $apple->get_name(); Trong ví dụ bên dưới, chúng tôi thêm hai phương thức nữa vào lớp Fruit, để thiết lập và nhận thuộc tính $color
Chúng ta có thể lấy tên lớp không gian tên đủ điều kiện của một đối tượng bằng cách sử dụng hàm ________ 39 _______. Giả sử rằng lớp đối tượng của chúng ta có ít nhất một không gian tên. Nếu chúng ta chỉ muốn lấy tên lớp, chúng ta có thể sử dụng lớp phản chiếu để lấy tên viết tắt của lớp
Một tùy chọn khác là thực sự lấy tên lớp được đặt tên đủ điều kiện của đối tượng và lấy tên lớp thông qua thao tác chuỗi
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 2 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 |