Методи __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";}'