addValues(...$value); } /** * @param mixed ...$value * * @return $this */ public function addValues(...$values) { $this->argMultiValue = array_merge($this->argMultiValue, $values); return $this; } /** * Serializes to string. * * @return string */ public function __toString() { return ArrayUtils::implodeFiltered( $this->nameValueDelimiter ?: static::ARG_NAME_VALUE_DELIMITER, [ $this->getArgName(), ArrayUtils::implodeFiltered( $this->innerValueDelimiter ?: static::ARG_INNER_VALUE_DELIMITER, ArrayUtils::build(ArrayUtils::flatten($this->argMultiValue)) ), ] ); } /** * Serializes to json. * * @return mixed */ public function jsonSerialize() { return ['name' => $this->getArgName(), 'value' => ArrayUtils::flatten($this->argMultiValue)]; } /** * Gets the argument name. * * @return string * * @internal */ protected function getArgName() { return $this->argName ?: $this->getFullName(); } }