序列化的PHP反射

Den*_*sky 9 php reflection serialization

请考虑以下示例代码:

<?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());

?>
Run Code Online (Sandbox Code Playgroud)

这会产生以下输出:

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
Run Code Online (Sandbox Code Playgroud)

问题在于,有没有办法在PHP中正确序列化/反序列化Reflection对象?

谢谢.

Mri*_*ria 2

来自http://bugs.php.net/bug.php?id=30324

序列化不适用于虚拟属性,并且此问题通常发生在内部类中。

也许这个方法就是这种情况。但是,我不确定文档是否不清楚。https://www.php.net/manual/en/reflectionfunctionabstract.getparameters.php