Nhằm giúp sử dụng hiệu quả các object trong hướng đối tượng, PHP cung cấp cho lập trình viên phương thức magic. Phương thức magic là những phương thức được đặt tên với kí tự đặc biệt, bắt đầu với dấu 2 gạch dưới ( __ ). Khi một phương thức được đặt tên với dấu 2 gạch dưới, điều đó là dấu hiệu để PHP nhận biết đây là phương thức magic, và nó sẽ kích hoạt các tính năng đặc biệt của loại phương thức này.
Thông thường mỗi magic method sẽ được kích hoạt (trigger) ở một sự kiện nào đó mà ta tác động vào đối tượng. Ví dụ hàm __set() và __get() sẽ được gọi khi ta tiến hành gán hay lấy giá trị của các thuộc tính trong đối tượng.
Sau đây là danh sách các magic methods:
- __construct(), hàm khởi tạo, được gọi khi khởi tạo mới đối tượng
- __destruct(), hàm hủy, được gọi khi đối tượng bị hủy
- __get(), hàm getter, được gọi khi lấy giá trị của thuộc tính
- __set(), hàm setter, được gọi khi gán giá trị cho thuộc tính
- __call(), hàm call, được gọi khi ta gọi đến một phương thức không tồn tại trong đối tượng
- __callStatic(), hàm call static, được gọi khi ta gọi đến một phương thức tĩnh không tồn tại trong đối tượng
- __isset(), hàm isset, được gọi bởi hàm isset() hay empty()
- __unset(), hàm unset, được gọi khi hàm unset() được sử dụng
- __sleep(), hàm sleep, được gọi khi đối tượng trong tiến trình chuyển đổi (Serialize)
- __wakeup(), ngược lại của hàm sleep (Deserialize)
- __toString(), hàm tostring, được gọi khi nó được kết hợp trực tiếp với hàm echo() hoặc print()
- __invoke(), hàm invoke, được gọi khi gọi tới một đối tượng giống như 1 hàm
- __set_state(), hàm set_state, được gọi cho lớp được xuất bởi hàm var_export()
- __clone(), hàm clone, được gọi khi 1 bản sao của đối tượng được tạo ra với từ khóa clone
- __debugInfo(), hàm debuginfo, được gọi khi dùng hàm var_dump() để kiểm tra kiểu dữ liệu và giá trị của biến
Các bạn có thể truy cập vào đây để tìm hiểu chi tiết: Link
Leave a Reply