请考虑下面的示例代码:系列化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