public function rewrite(&$left, &$op, &$right, &$not) { if (count($this->values) == 1) { $right = new ValueExpr($this->values[0]); return; } $newops = array(); foreach ($this->values as $value) { $classname = get_class($left); $class = new $classname(); $newop = new OpExpr($class, $op, $value); $newops[] = $newop; } $result = $newops[0]; for ($i = 1; $i < count($newops); $i++) { $result = new OpExpr($result, ExprOp::OP_OR, $newops[$i]); } $left = $result->left(); $op = $result->op(); $right = $result->right(); }