Max*_*Net 8 php serialization memcached pdo
我尝试使用memcache在PHP中缓存我的User对象,但是在使用PDO时出错.我添加了__sleep和__wakeup函数.
user.php的
/**
* @var PDO
*/
protected $db;
public function __construct()
{
$this->db = getInstanceOf('db');
}
public function __destruct()
{
}
public function __sleep()
{
return array('db');
}
public function __wakeup()
{
$this->db = getInstanceOf('db');
}
Run Code Online (Sandbox Code Playgroud)
getInstanceOf('db')返回一个pdo对象......
返回以下错误:
PDOException:您无法在第41行的/var/www/test/User.php中序列化或反序列化PDO实例
hak*_*kre 12
它很可能$this->db是一个PDO对象.PDO对象无法序列化.
删除该对象__sleep()并将其添加回__wakeup()(这是您在以后的情况下已经执行的操作):
public function __sleep()
{
return array();
}
Run Code Online (Sandbox Code Playgroud)
您无法序列化无法序列化的对象.但你试过了,所以你得到了例外.这基本上就是整个问题.只是不要告诉PHP序列化无法序列化的对象.