| <?php |
| |
| |
| |
| |
| |
|
|
| namespace WpOrg\Requests\Utility; |
|
|
| use ArrayAccess; |
| use ArrayIterator; |
| use IteratorAggregate; |
| use ReturnTypeWillChange; |
| use WpOrg\Requests\Exception; |
|
|
| |
| |
| |
| |
| |
| class CaseInsensitiveDictionary implements ArrayAccess, IteratorAggregate { |
| |
| |
| |
| |
| |
| protected $data = []; |
|
|
| |
| |
| |
| |
| |
| public function __construct(array $data = []) { |
| foreach ($data as $offset => $value) { |
| $this->offsetSet($offset, $value); |
| } |
| } |
|
|
| |
| |
| |
| |
| |
| |
| #[ReturnTypeWillChange] |
| public function offsetExists($offset) { |
| if (is_string($offset)) { |
| $offset = strtolower($offset); |
| } |
|
|
| return isset($this->data[$offset]); |
| } |
|
|
| |
| |
| |
| |
| |
| |
| #[ReturnTypeWillChange] |
| public function offsetGet($offset) { |
| if (is_string($offset)) { |
| $offset = strtolower($offset); |
| } |
|
|
| if (!isset($this->data[$offset])) { |
| return null; |
| } |
|
|
| return $this->data[$offset]; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| #[ReturnTypeWillChange] |
| public function offsetSet($offset, $value) { |
| if ($offset === null) { |
| throw new Exception('Object is a dictionary, not a list', 'invalidset'); |
| } |
|
|
| if (is_string($offset)) { |
| $offset = strtolower($offset); |
| } |
|
|
| $this->data[$offset] = $value; |
| } |
|
|
| |
| |
| |
| |
| |
| #[ReturnTypeWillChange] |
| public function offsetUnset($offset) { |
| if (is_string($offset)) { |
| $offset = strtolower($offset); |
| } |
|
|
| unset($this->data[$offset]); |
| } |
|
|
| |
| |
| |
| |
| |
| #[ReturnTypeWillChange] |
| public function getIterator() { |
| return new ArrayIterator($this->data); |
| } |
|
|
| |
| |
| |
| |
| |
| public function getAll() { |
| return $this->data; |
| } |
| } |
|
|