Phương thức __sleep
Phương thức __sleep được gọi tự động khi tuần tự hóa một đối tượng bằng hàm serialize. Phương thức này phải trả về một mảng chứa tên các thuộc tính cần được đưa vào biểu diễn tuần tự hóa của đối tượng.
Cú pháp
public function __sleep(): array;
Ví dụ
Tạo một lớp và triển khai phương thức __sleep để chỉ tuần tự hóa các thuộc tính nhất định:
<?php
class User {
public $name = 'John';
public $age = 30;
private $password = '12345';
public function __sleep() {
return ['name', 'age'];
}
}
$user = new User();
echo serialize($user);
?>
Kết quả thực thi mã:
'O:4:"User":2:{s:4:"name";s:4:"John";s:3:"age";i:30;}'
Ví dụ
Sử dụng __sleep để loại trừ dữ liệu bí mật khỏi quá trình tuần tự hóa:
<?php
class Account {
public $login = 'admin';
private $password = 'secret';
public $email = 'admin@example.com';
public function __sleep() {
return ['login', 'email'];
}
}
$account = new Account();
echo serialize($account);
?>
Kết quả thực thi mã:
'O:7:"Account":2:{s:5:"login";s:5:"admin";s:5:"email";s:17:"admin@example.com";}'