Методот __sleep
Методот __sleep се повикува автоматски при серијализација на објект со помош на функцијата serialize. Овој метод треба да врати низа од имиња на својствата кои треба да бидат вклучени во серијализираната претстава на објектот.
Синтакса
public function __sleep(): array;
Пример
Ајде да креираме класа и да го имплементираме методот __sleep за да серијализираме само одредени својства:
<?php
class User {
public $name = 'John';
public $age = 30;
private $password = '12345';
public function __sleep() {
return ['name', 'age'];
}
}
$user = new User();
echo serialize($user);
?>
Резултат од извршувањето на кодот:
'O:4:"User":2:{s:4:"name";s:4:"John";s:3:"age";i:30;}'
Пример
Користење на __sleep за исклучување на конфиденцијални податоци од серијализацијата:
<?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);
?>
Резултат од извршувањето на кодот:
'O:7:"Account":2:{s:5:"login";s:5:"admin";s:5:"email";s:17:"admin@example.com";}'