expanders[] = $expander; if (func_num_args() > 1) { $arguments = func_get_args(); $length = count($arguments); for ($i = 1; $i < $length; ++$i) { if (!$arguments[$i] instanceof PatternExpander) { throw new \InvalidArgumentException('Has invalid expander.'); } $this->expanders[] = $arguments[$i]; } } } /** * @param mixed $value Value to match. * * @return boolean */ public function match($value) { foreach ($this->expanders as $expander) { if (! $expander->match($value)) { $className = get_class($expander); $className = substr($className, strrpos($className, '\\')); $this->error = "Expander {$className} don't matches value: ". $expander->getError(); return false; } } return true; } }