【发布时间】:2012-07-24 11:56:28
【问题描述】:
PHP 中的__sleep 和__wakeup 魔术方法有什么用?我阅读了 PHP 文档,但仍然不清楚:
class sleepWakeup {
public function __construct() {
// constructor //
}
public function __sleep() {
echo 'Time to sleep.';
}
public function __wakeup() {
echo 'Time to wakeup.';
}
}
$ob = new sleepWakeup();
// call __sleep method
echo $ob->__sleep();
echo "\n";
// call __wakeup method
echo $ob->__wakeup();
此示例代码打印:
Time to sleep.
Time to wakeup.
如果我将 __sleep 和 __wakeup 重命名为 foo 和 bar,那么它会做同样的事情。这两种方法的正确用法是什么?
【问题讨论】:
-
你应该改用
Serializable。
标签: php oop magic-methods