Webmozart\Expression\Traversal\ExpressionTraverser::removeVisitor PHP Method

removeVisitor() public method

If the visitor was added multiple times, all instances are removed.
public removeVisitor ( Webmozart\Expression\Traversal\ExpressionVisitor $visitor )
$visitor Webmozart\Expression\Traversal\ExpressionVisitor The visitor to remove.
    public function removeVisitor(ExpressionVisitor $visitor)
    {
        while (false !== ($key = array_search($visitor, $this->visitors, true))) {
            unset($this->visitors[$key]);
        }
        $this->visitors = array_values($this->visitors);
    }

Usage Example

 public function testRemoveVisitor()
 {
     $visitor1 = $this->getMock('Webmozart\\Expression\\Traversal\\ExpressionVisitor');
     $visitor2 = $this->getMock('Webmozart\\Expression\\Traversal\\ExpressionVisitor');
     $this->traverser->addVisitor($visitor1);
     $this->traverser->addVisitor($visitor2);
     $this->traverser->addVisitor($visitor1);
     $this->traverser->removeVisitor($visitor1);
     $this->assertSame(array($visitor2), $this->traverser->getVisitors());
 }