Chris@0: serial--]; Chris@0: } Chris@0: parent::insert($datum, $priority); Chris@0: } Chris@0: Chris@0: /** Chris@0: * Serialize to an array Chris@0: * Chris@0: * Array will be priority => data pairs Chris@0: * Chris@0: * @return array Chris@0: */ Chris@0: public function toArray() Chris@0: { Chris@0: $array = []; Chris@0: foreach (clone $this as $item) { Chris@0: $array[] = $item; Chris@0: } Chris@0: return $array; Chris@0: } Chris@0: Chris@0: /** Chris@0: * Serialize Chris@0: * Chris@0: * @return string Chris@0: */ Chris@0: public function serialize() Chris@0: { Chris@0: $clone = clone $this; Chris@0: $clone->setExtractFlags(self::EXTR_BOTH); Chris@0: Chris@0: $data = []; Chris@0: foreach ($clone as $item) { Chris@0: $data[] = $item; Chris@0: } Chris@0: Chris@0: return serialize($data); Chris@0: } Chris@0: Chris@0: /** Chris@0: * Deserialize Chris@0: * Chris@0: * @param string $data Chris@0: * @return void Chris@0: */ Chris@0: public function unserialize($data) Chris@0: { Chris@17: $this->serial = PHP_INT_MAX; Chris@0: foreach (unserialize($data) as $item) { Chris@17: $this->serial--; Chris@0: $this->insert($item['data'], $item['priority']); Chris@0: } Chris@0: } Chris@0: }