我正在使用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
任何帮助将不胜感激..!!
在谷歌搜索时,我发现这是 PHP 版本中SplDoublyLinkedList
类序列化低于 5.4 的问题。 SplDoublyLinkedList::serialize
无法在生产服务器上工作(因为服务器运行的是 PHP 5.3),除了将 PHP 版本升级到 5.4 之外,没有其他解决方案可以做到这一点。