Chris@13: filterCallback = $filterCallback; Chris@13: } Chris@13: Chris@13: /** Chris@13: * Get found node satisfying the filter callback. Chris@13: * Chris@13: * Returns null if no node satisfies the filter callback. Chris@13: * Chris@13: * @return null|Node Found node (or null if not found) Chris@13: */ Chris@13: public function getFoundNode() { Chris@13: return $this->foundNode; Chris@13: } Chris@13: Chris@13: public function beforeTraverse(array $nodes) { Chris@13: $this->foundNode = null; Chris@13: Chris@13: return null; Chris@13: } Chris@13: Chris@13: public function enterNode(Node $node) { Chris@13: $filterCallback = $this->filterCallback; Chris@13: if ($filterCallback($node)) { Chris@13: $this->foundNode = $node; Chris@13: return NodeTraverser::STOP_TRAVERSAL; Chris@13: } Chris@13: Chris@13: return null; Chris@13: } Chris@13: }