Hướng dẫn php self keyword - từ khóa php self
1.Static keyword 1.1 Static 1.2 Static properties Có thể truy xuất tới các thuộc tính static thông qua tên class. 1.3 Static method Vì các phương thức static có thể gọi được mà không cần khởi tạo 1 đối tượng tượng nên từ khóa $this không sử dụng được bên trong các phương thức được khai báo là static.phương thức static có thể gọi được mà không cần khởi tạo 1 đối tượng tượng nên từ khóa $this không sử dụng được bên trong các phương thức được khai báo là static. 1.4 Example Ví dụ:
Ví dụ với static:
2. Self keyword Ta không truy cập được vào thuộc tính static với $this. Vậy làm thế nào để tiếp cận (sử dụng) các thuộc tính static trong lớp? lúc này ta cần sử dụng static và self.thuộc tính static với $this. Vậy làm thế nào để tiếp cận (sử dụng) các thuộc tính static trong lớp? lúc này ta cần sử dụng static và self. Ví dụ: Mình tạo object $con_vit và thiết lập tên cho nó là ‘Con Vịt’. và static có thể gọi các phương thức không phải là static (non-static) và các hằng số const. Nó không thể truy cập tới Thuộc tính không phải là static. Tiếp theo tạo một object $con_heo và không có thiết lập tên cho nó khi xuất tên ra màn hình thì Phần 1 xuất hiện chữ ‘Con Vịt’ còn Phần 2 thì xuất hiện chữ ‘Chưa có tên’. Như vậy rõ ràng các thao tác trên object $con_vit không ảnh hưởng qua object $con_heo.
Ở cả Phần 1 và Phần 2 đều xuất ra màn hình là ‘Con Vịt’, lý do là mình sử dụng static và khi có thao tác thay đổi dữ liệu thì nó đều lưu vào trong class Animal nên khi khởi tạo thêm biến nó đều bị ảnh hưởng theoKế Thừa trong OOP để các bạn thấy rõ hơn sự khác nhau của static và self. 2. Self keyword
Kết quả in ra ta có thể biết
khi xuất tên ra màn hình thì Phần 1 xuất hiện chữ ‘Con Vịt’ còn Phần 2 thì xuất hiện chữ ‘Chưa có tên’. Như vậy rõ ràng các thao tác trên object $con_vit không ảnh hưởng qua object $con_heo. Ví dụ với static:
3. Khác nhau giữa static và self
Ví dụ dưới đây theo mình xin sử dụng 1 chút về tính chất Kế Thừa trong OOP để các bạn thấy rõ hơn sự khác nhau của static và self.Parent keyword
Tiếp theo mình tạo ra class NguoiLon kế thừa từ class ConNguoi nên mình có thể sử dụng được các thuộc tính và phương thức từ class ConNguoi Giải thích:
*Để truy cập một thuộc tính hoặc phương thức trong lớp cha đã bị ghi đè trong lớp con bằng cách sử dụng từ khóa parent::.parent::. Mình có ví dụ cụ thể hơn dưới đây: 5. Khác nhau giữa từ khóa $this – self và parent
*Với việc sử dụng self và parent, bạn cho phép tránh tham chiếu rõ ràng lớp theo tên. *Hãy thử chạy lại từng ví dụ trên và thay thế các từ khóa static hay self hay parent cho nhau thì bạn sẽ hiểu kĩ hơn. Tài liệu tham khảo: https://www.php.net/manual/en/language.oop5.static.php.https://www.php.net/manual/en/language.oop5.static.php. |