/** * Creates a value from a given iteration * * @param util.address.Iteration $iteration * @return var */ public function create($iteration) { if (null !== $this->path && $this->path !== $iteration->path()) { throw new IllegalStateException('Enclosing element mismatch, expecting "' . $this->path . '", have "' . $iteration->path() . '"'); } $iteration->next(); return $iteration->input(); }
/** * Creates a value from a given iteration * * @param util.address.Iteration $iteration * @return var */ public function create($iteration) { if ($this->match) { $match = array_map(function ($path) use($iteration) { return $iteration->base() . $path; }, $this->match); } else { $match = [$iteration->path()]; } $r = []; while (in_array($iteration->path(), $match, true)) { $r[] = $iteration->next($this->component); } return $r; }