我的课程testClass
的方法为save
。此方法将对象保存到数据库。但它需要在保存之前序列化对象。如何从类中序列化对象来做到这一点?
class testClass {
private $prop = 777;
public function save() {
$serializedObject = serialize(self);
DB::insert('objects', array('id', 'object'))
->values(array(1, $serializedObject))
->execute();
}
}
序列化(自我)显然不起作用。
答案 0 :(得分:5)
首先,您需要将$this
传递给serialize()
而不是self
:
$serializedObject = serialize($this);
其次,除非你没有实现Serializable
接口(从PHP 5.1开始),否则你需要实现“魔术方法”__sleep()
以序列化私有或受保护的属性:
public function __sleep() {
return array('prop');
}