Giới thiệu
Các phương thức ma thuật trong PHP là các phương thức đặc biệt nhằm thực hiện một số tác vụ nhất định. Các phương thức này được đặt tên với dấu gạch dưới kép (__) làm tiền tố. Tất cả các tên chức năng này đều được bảo lưu và không được sử dụng cho bất kỳ mục đích nào khác ngoài chức năng ma thuật liên quan. Phương thức phép thuật trong một lớp phải được khai báo public. Các phương thức này hoạt động như các bộ chặn được tự động gọi khi đáp ứng các điều kiện nhất định.
Các phương pháp kỳ diệu sau hiện có sẵn trong PHP
__sleep
public __sleep ( void ) : array
Phương thức serialize () trong lớp kiểm tra xem nó có tên hàm __sleep () hay không. Nếu vậy, chức năng đó được thực thi trước bất kỳ tuần tự hóa nào. Nó phải trả về một mảng với tên của tất cả các biến của đối tượng đó sẽ được tuần tự hóa.
__wakeup
public __wakeup ( void ) : void
phương thức unserialize () kiểm tra có tồn tại một hàm với tên ma thuật __wakeup () hay không. Nếu có, hàm này có thể tái tạo lại bất kỳ tài nguyên nào mà đối tượng có thể có.
__serialize
public __serialize ( void ) : array
Phương thức serialize () cũng kiểm tra xem lớp có phương thức __serialize () hay không. Nếu vậy, nó được thực thi trước bất kỳ tuần tự hóa nào. Nó phải tạo và trả về một mảng kết hợp gồm các cặp khóa / giá trị đại diện cho dạng tuần tự hóa của đối tượng.
__unserialize
public __unserialize ( array $data ) : void
unserialize () cũng kiểm tra xem có __unserialize () hay không và nó sẽ được chuyển vào mảng đã khôi phục được trả về từ __serialize (). Sau đó, nó có thể khôi phục các thuộc tính của đối tượng từ mảng đó nếu thích hợp
__toString
public __toString ( void ) : string
Phương thức __toString () mô tả biểu diễn chuỗi của đối tượng. Ví dụ, những gì echo $ obj; sẽ in. Phương thức này phải trả về một chuỗi
__invoke
__invoke ([ $... ] ) : mixed
Phương thức này được gọi khi một tập lệnh cố gắng gọi một đối tượng dưới dạng một hàm.
__set_state
static __set_state ( array $properties ) : object
Phương thức tĩnh này được gọi cho các lớp được xuất bởi var_export (). Nó nhận một tham số là một mảng chứa các thuộc tính được xuất trong mảng biểu mẫu ('property' => value, ...).
__debugInfo
__debugInfo ( void ) : array
Phương thức này tự động được gọi khi var_dump () được thực thi để kết xuất một đối tượng để lấy các thuộc tính cần được hiển thị. Nếu nó không được xác định, tất cả các thuộc tính công khai, được bảo vệ và riêng tư sẽ được hiển thị.
__set
public __set ( string $name , mixed $value ) : void
__set () được chạy khi ghi dữ liệu vào các thuộc tính không thể truy cập (được bảo vệ hoặc riêng tư) hoặc không tồn tại.
__get
public __get ( string $name ) : mixed
__get () được sử dụng để đọc dữ liệu từ các thuộc tính không thể truy cập (được bảo vệ hoặc riêng tư) hoặc không tồn tại.
__isset
public __isset ( string $name ) : bool
__isset () được kích hoạt bằng cách gọi Isset () hoặc blank () trên các thuộc tính không thể truy cập (được bảo vệ hoặc riêng tư) hoặc không tồn tại.
__unset
public __unset ( string $name ) : void
__unset () được gọi khi unset () được sử dụng trên các thuộc tính không thể truy cập (được bảo vệ hoặc riêng tư) hoặc không tồn tại.