diff --git a/src/Pecee/Http/Input/InputHandler.php b/src/Pecee/Http/Input/InputHandler.php index 96f41e7..aa54c6d 100644 --- a/src/Pecee/Http/Input/InputHandler.php +++ b/src/Pecee/Http/Input/InputHandler.php @@ -308,10 +308,10 @@ class InputHandler * Find post-value by index or return default value. * * @param string $index - * @param string|null $defaultValue + * @param mixed|null $defaultValue * @return InputItem|array|string|null */ - public function post(string $index, ?string $defaultValue = null) + public function post(string $index, $defaultValue = null) { return $this->post[$index] ?? $defaultValue; } @@ -320,10 +320,10 @@ class InputHandler * Find file by index or return default value. * * @param string $index - * @param string|null $defaultValue + * @param mixed|null $defaultValue * @return InputFile|array|string|null */ - public function file(string $index, ?string $defaultValue = null) + public function file(string $index, $defaultValue = null) { return $this->file[$index] ?? $defaultValue; } @@ -332,10 +332,10 @@ class InputHandler * Find parameter/query-string by index or return default value. * * @param string $index - * @param string|null $defaultValue + * @param mixed|null $defaultValue * @return InputItem|array|string|null */ - public function get(string $index, ?string $defaultValue = null) + public function get(string $index, $defaultValue = null) { return $this->get[$index] ?? $defaultValue; } diff --git a/src/Pecee/Http/Input/InputItem.php b/src/Pecee/Http/Input/InputItem.php index 85ae93d..ebb4bb3 100644 --- a/src/Pecee/Http/Input/InputItem.php +++ b/src/Pecee/Http/Input/InputItem.php @@ -2,10 +2,11 @@ namespace Pecee\Http\Input; +use ArrayAccess; use ArrayIterator; use IteratorAggregate; -class InputItem implements IInputItem, IteratorAggregate +class InputItem implements ArrayAccess, IInputItem, IteratorAggregate { public $index; public $name; @@ -75,9 +76,34 @@ class InputItem implements IInputItem, IteratorAggregate return $this; } + public function offsetExists($offset): bool + { + return isset($this->value[$offset]); + } + + public function offsetGet($offset) + { + if ($this->offsetExists($offset) === true) { + return $this->value[$offset]; + } + + return null; + } + + public function offsetSet($offset, $value): void + { + $this->value[$offset] = $value; + } + + public function offsetUnset($offset): void + { + unset($this->data[$offset]); + } + public function __toString(): string { $value = $this->getValue(); + return (is_array($value) === true) ? json_encode($value) : $value; }