我使用SplQueue php类创建数据队列并将队列存储在memcache中:
$queue = new \SplQueue();
$queue->enqueue($data);
print_r($queue);
$this->getServiceLocator()->get('memcached')->setItem('key', $queue);
$queue = $this->getServiceLocator()->get('memcached')->getItem('key');
print_r($queue);
上次print_r
给出了这样的空白结果:
SplQueue Object
(
[flags:SplDoublyLinkedList:private] => 4
[dllist:SplDoublyLinkedList:private] => Array
(
)
)
但是第一个print_r
正在按预期提供生成的队列。此代码在我的本地系统上正常工作,但在生产服务器上生成上述问题。
注意: - 两台机器上的Memcahced版本相同1.4
任何帮助将不胜感激.. !!
答案 0 :(得分:1)
在谷歌搜索时,我发现here这是一个问题,PHP版本中SplDoublyLinkedList
类的序列化低于5.4。 SplDoublyLinkedList::serialize
没有在生产服务器上运行(因为服务器运行的是PHP 5.3),除了将PHP版本升级到5.4之外,没有替代解决方案。