如何解决序列化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对象?
谢谢。
解决方法
来自http://bugs.php.net/bug.php?id=30324
序列化不适用于虚拟
属性和这个问题通常
发生在内部类中。
也许这种方法就是这种情况。但是,我不确定文档是否不清楚。 http://in3.php.net/manual/zh-CN/reflectionfunctionabstract.getparameters.php
, 使用JMS序列化程序可使用方法序列化私有和受保护的属性以及虚拟属性。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。