/** * Constructor. * * The first argument can be: * * * null * * a Base instance * * an array of Base instances * * @param mixed $validators Initial validators * @param array $options An array of options * @param array $messages An array of error messages * * @see Base */ public function __construct($validators = null, $options = array(), $messages = array()) { if ($validators instanceof Base) { $this->addValidator($validators); } else { if (is_array($validators)) { foreach ($validators as $validator) { $this->addValidator($validator); } } else { if (null !== $validators) { throw new \InvalidArgumentException('And constructor takes a Base object, or a Base array.'); } } } parent::__construct($options, $messages); }