請考慮下面的示例代碼:系列化PHP反思
<?php
class a {
function b() {}
}
$r=new ReflectionMethod(new a, "b");
var_dump($r->getParameters());
$s=serialize($r);
$r=unserialize($s);
var_dump($r->getParameters());
?>
產生以下的輸出:
array(0) { }
Fatal error: ReflectionFunctionAbstract::getParameters() [<a href='reflectionfunctionabstract.getparameters'>reflectionfunctionabstract.getparameters</a>]: Internal error: Failed to retrieve the reflection object in [...]test.php on line 13
問題表示,有沒有辦法正確序列化PHP /反序列化的反思對象?
謝謝。
是的,錯誤描述似乎相關。官方文檔指出,調用內置構造函數對於擴展(並因此初始化)Reflection對象是至關重要的,並且它似乎不會發生在unserialize() – 2011-05-29 16:33:37