value = $value; } public function getValue() { return $this->value; } public function appendChild($value) { $child = new self($value); $this->children[] = $child; return $child; } public function hasChildren() { return ! empty($this->children); } public function getChildren() { return $this->children; } public function getIterator() { return new TreeIterator($this); } }