traverse() public méthode

Callback function receives as its only argument an instance of an ExpressionInterface
public traverse ( callable $callable ) : void
$callable callable The callable to apply to sub-expressions
Résultat void
 /**
  * Tests traversing
  *
  * @return void
  */
 public function testTraverse()
 {
     $value1 = new QueryExpression(['a' => 1]);
     $field2 = new QueryExpression(['b' => 2]);
     $f = new TupleComparison(['field1', $field2], [$value1, 2], ['integer', 'integer'], '=');
     $binder = new ValueBinder();
     $expressions = [];
     $collector = function ($e) use(&$expressions) {
         $expressions[] = $e;
     };
     $f->traverse($collector);
     $this->assertCount(4, $expressions);
     $this->assertSame($field2, $expressions[0]);
     $this->assertSame($value1, $expressions[2]);
     $f = new TupleComparison(['field1', $field2], [[1, 2], [3, $value1]], ['integer', 'integer'], 'IN');
     $expressions = [];
     $f->traverse($collector);
     $this->assertCount(4, $expressions);
     $this->assertSame($field2, $expressions[0]);
     $this->assertSame($value1, $expressions[2]);
 }