replace($items); } /** * {@inheritdoc} */ public function set($key, $value) { $this->data[$key] = $value; } /** * {@inheritdoc} */ public function get($key, $default = null) { return $this->has($key) ? $this->data[$key] : $default; } /** * {@inheritdoc} */ public function replace(array $items) { foreach ($items as $key => $value) { $this->set($key, $value); } } /** * {@inheritdoc} */ public function all() { return $this->data; } /** * Get collection keys * * @return array The collection's source data keys */ public function keys() { return array_keys($this->data); } /** * {@inheritdoc} */ public function has($key) { return array_key_exists($key, $this->data); } /** * {@inheritdoc} */ public function remove($key) { unset($this->data[$key]); } /** * {@inheritdoc} */ public function clear() { $this->data = []; } /** * Does this collection have a given key? * * @param string $key The data key * * @return bool */ #[\ReturnTypeWillChange] public function offsetExists($key) { return $this->has($key); } /** * Get collection item for key * * @param string $key The data key * * @return mixed The key's value, or the default value */ #[\ReturnTypeWillChange] public function offsetGet($key) { return $this->get($key); } /** * Set collection item * * @param string $key The data key * @param mixed $value The data value */ #[\ReturnTypeWillChange] public function offsetSet($key, $value) { $this->set($key, $value); } /** * Remove item from collection * * @param string $key The data key */ #[\ReturnTypeWillChange] public function offsetUnset($key) { $this->remove($key); } /** * Get number of items in collection * * @return int */ #[\ReturnTypeWillChange] public function count() { return count($this->data); } /** * Get collection iterator * * @return ArrayIterator */ #[\ReturnTypeWillChange] public function getIterator() { return new ArrayIterator($this->data); } }