SplObjectStorage ile bir nesne ağacı serializing Sorunu

0 Cevap php

Yukarıdaki örnekte olduğu gibi, SplObjectStorage kullanarak basit Kompozit model hayata geçirdik:

class Node
{
    private $parent = null;

    public function setParent(Composite $parent)
    {
        $this->parent = $parent;
    }
}

class Composite extends Node
{
    private $children;

    public function __construct()
    {
        $this->children = new SplObjectStorage;
    }

    public function add(Node $node)
    {
        $this->children->attach($node);
        $node->setParent($this);
    }
}

Whenever I try to serialize a Composite object, PHP 5.3.2 throws me a Segmentation Fault. This only happens when I add any number of nodes of any type to the object.

Bu soruna neden olan kodu:

$node = new Node;
$composite = new Composite;
$composite->add($node);
echo serialize($composite);

Bu işleri olmasına rağmen:

$node = new Node;
$composite = new Composite;
echo serialize($composite);

Ben yerine SplObjectStorage dizisi ile Kompozit deseni () uygulamak durumunda Ayrıca, tüm çok ok çalışır.

Ben yanlış yapıyorum ne?

0 Cevap