我试图序列化一个SplFileObject,它在5.2中默默地失败,并在5.3中引发致命错误。到目前为止,我已经通过继承SplFileObject和实施使用(简体)下面的代码Serializable接口固定的问题在5.2(完整版也处理$ open_mode和$上下文,但是这不是有关这个问题):如何使用PHP 5.3序列化SplFileObject?
<?php
class SerializableFileObject extends SplFileObject implements Serializable
{
public function serialize()
{
return $this->getRealPath();
}
public function unserialize($serialized)
{
$this->__construct($serialized);
}
}
但仍然5.3抛出一个致命的:
PHP Fatal error: Class SerializableFileObject could not implement interface Serializable in Unknown on line 0
我也尝试添加魔法__sleep
和__wakeup
方法,都无济于事。
Google似乎对此知之甚少,所以我仍然想知道是否可以在5.3中序列化一个SplFileObject。
更新:似乎这个问题没有答案(参考我的评论)。
快速查看一下PHP源代码,显示如下:'spl_ce_SplFileInfo-> serialize = zend_class_serialize_deny;',这意味着序列化SplFileObject永远不会发生:( – 2011-03-17 10:04:04