ホームページ >バックエンド開発 >PHPチュートリアル >phpマジックメソッドsleep()wakeup()
public array __sleep (void)
void __wakeup (void)
serialize() 関数は、クラス p() にマジック メソッド __slee があるかどうかを確認します。 。存在する場合、このメソッドが最初に呼び出され、次にシリアル化操作が実行されます。この関数を使用すると、オブジェクトをクリーンアップし、シリアル化する必要があるオブジェクト内のすべての変数の名前を含む配列を返すことができます。メソッドが何も返さない場合、NULL がシリアル化され、E_NOTICE レベルのエラーが発生します。
例:
class user { public $name; public $id; function __construct() { // 给id成员赋一个uniq id $this->id = 'asas'; } function __sleep() { //此处不串行化id成员 return(array('name')); } function __wakeup() { $this->id = uniqid(); }}$u = new user();$u->name = "Leo";$s = serialize($u); //serialize串行化对象u,此处不串行化id属性,id值被抛弃$u2 = unserialize($s); //unserialize反串行化,id值被重新赋值//对象u和u2有不同的id赋值print_r($u);print_r($u2);
結果:
user Object ( [name] => Leo [id] => asas ) user Object ( [name] => Leo [id] => 5621ed9f6614c )