我試圖序列化一個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