【发布时间】:2012-08-24 07:09:19
【问题描述】:
我正在尝试缓存反射对象。看代码:
class A {
public function __construct() {
}
}
$memcache = new Memcache();
$memcache->addServer('127.0.0.1', 11211);
$r = new ReflectionClass('A');
$memcache->set('a', $r);
$r = $memcache->get('a');
$a = $r->newInstanceArgs(array()); //here occurred the error
当我运行它产生的脚本时:
PHP Fatal error: ReflectionClass::newInstanceArgs():
Internal error: Failed to retrieve the reflection object
我也尝试过使用 APC 以及序列化和反序列化,但没有任何改变。
【问题讨论】:
-
$r保存到内存缓存之前是什么? ($memcache->set('a', $r);) 您的错误消息也缺少行号(在您的代码示例中,哪个消息与哪一行相关?)。另外你说你尝试了一些东西但没有提供任何代码,所以我们只能说:你做错了。无论你试图做什么。请记住,阅读问题的人需要理解它;) -
Serialized PHP Reflection 的可能重复项
-
@Evert,你是对的:$r = new ReflectionClass('A'); $r = 反序列化(序列化($r)); $a = $r->newInstanceArgs(array());产生同样的错误