无法将 SplQueue 对象正确存储在 ZF2 中的内存缓存中


Unable to store SplQueue object properly in memcache in ZF2..?

我正在使用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 之外,没有其他解决方案可以做到这一点。