Methode __sleep
De methode __sleep wordt automatisch aangeroepen wanneer een object wordt geserialiseerd met de functie serialize. Deze methode moet een array met namen van eigenschappen retourneren die moeten worden opgenomen in de geserialiseerde weergave van het object.
Syntaxis
public function __sleep(): array;
Voorbeeld
Laten we een klasse maken en de methode __sleep implementeren om alleen specifieke eigenschappen te serialiseren:
<?php
class User {
public $name = 'John';
public $age = 30;
private $password = '12345';
public function __sleep() {
return ['name', 'age'];
}
}
$user = new User();
echo serialize($user);
?>
Resultaat van de code-uitvoering:
'O:4:"User":2:{s:4:"name";s:4:"John";s:3:"age";i:30;}'
Voorbeeld
Gebruik van __sleep om vertrouwelijke gegevens uit te sluiten van serialisatie:
<?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);
?>
Resultaat van de code-uitvoering:
'O:7:"Account":2:{s:5:"login";s:5:"admin";s:5:"email";s:17:"admin@example.com";}'