The __sleep Method
The __sleep method is automatically called when serializing an object using the serialize function. This method should return an array of property names that should be included in the serialized representation of the object.
Syntax
public function __sleep(): array;
Example
Let's create a class and implement the __sleep method to serialize only specific properties:
<?php
class User {
public $name = 'John';
public $age = 30;
private $password = '12345';
public function __sleep() {
return ['name', 'age'];
}
}
$user = new User();
echo serialize($user);
?>
Code execution result:
'O:4:"User":2:{s:4:"name";s:4:"John";s:3:"age";i:30;}'
Example
Using __sleep to exclude confidential data from serialization:
<?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);
?>
Code execution result:
'O:7:"Account":2:{s:5:"login";s:5:"admin";s:5:"email";s:17:"admin@example.com";}'