PHP hướng đối tượng

Khái quát
Từ PHP 5, ngôn ngữ này đã giới thiệu đầy đủ các tính năng của lập trình hướng đối tượng. Một số tính năng bao gồm: abtract class / interface, phương thức và lớp final, phương thức public / private / protected, phương thức magic / cloning.
Hằng, autoload
Hằng số trong class được định nghĩa với từ khóa const và không có dấu $ trước tên hằng. Có thể truy cập hằng số qua class hoặc qua object sử dụng toán tử :: Hằng số mặc định đặt ở chế độ public. Từ phiên bản PHP 7.1 có thể khai báo với từ khóa public, protected hoặc private.
Toán tử :: và từ khóa static
Khác với $this để truy cập đến object, self trỏ đến class hiện tại, parent trỏ đến class cha. Khi sử dụng self và parent hãy sử dụng với toán tử ::
Lớp trừu tượng và Interface
Lớp trừu tượng là một lớp không thể khởi tạo được object mà chỉ cho các lớp khác mở rộng từ lớp đó. Lớp trừu tượng chứa ít nhất một hàm trừu tượng, chỉ có chữ ký của hàm mà không cài đặt. Khai báo lớp trừu tượng với từ khóa abstract.
Cấu trúc Traits
Từ phiên bản PHP 5.4, ngôn ngữ PHP đã thêm một tính năng sử dụng lại mã nguồn tên là traits. Một trait tương tự như một class, nó có chứa một nhóm các hàm để nhúng vào bên trong class. Nhưng không thể tạo một object từ trait.
Overloading
Overloading là cách tạo động phương thức và thuộc tính trong PHP bằng cách sử dụng cách phương thức magic. Có 4 hàm magic của PHP sử dụng trong Overloading thuộc tính là __set(), __get() __isset() và __unset().
Serialization
Serialization là phương pháp lưu trữ lại object dưới dạng string và chuyển string này thành object. Có hai hàm được sử dụng là hàm serialize() và hàm unserialize().
Magic method
Đầu tiên là tất cả các magic method đều bắt đầu bằng hai ký tự gạch dưới `__` và không thể gọi trực tiếp. Thứ hai là tất cả các magic method đều phải ở dạng public. Bài này sẽ đề cập đến một số magic hữu dụng khác bao gồm __toString(), __invoke(), __debugInfo() và __set_state()