我正在学习在PHP中使用APC.我创建了以下脚本进行测试:
<?php
require 'Person.php';
if (!$p = apc_fetch('p')) {
$p = new Person('larry');
apc_store('p', $p);
}
echo $p->getName();
其中Person.php是:
<?php
class Person
{
private $_name;
public function __construct($_name)
{
$this->_name = $_name;
}
/**
* @param mixed $name
*/
public function setName($_name)
{
$this->_name = $_name;
}
/**
* @return mixed
*/
public function getName()
{
return $this->_name;
}
}
它工作正常,但在apc中存储的值是:
__PHP_Incomplete_Class::__set_state(array(
'__PHP_Incomplete_Class_Name' => 'Person',
'_name' => 'larry',
))
可以吗或’__PHP_Incomplete_Class_Name’出问题
谢谢
解决方法:
虽然我不知道APC,但是__PHP_Incomplete_Class_Name通常是由于您在没有类定义时尝试访问对象引起的
在包含或要求您的类结构之前调用session_start时,或在没有定义时反序列化某些内容时,通常会看到这种情况.
从APC装回时,请确保在加载类定义(包括或要求)之前先进行访问,我想一切都很好.