$value) { if (!in_array($value, self::$noneConstants, true)) { $result[$key] = $value; } } return $result; } public function __construct(array $options) { $this->options = []; foreach ($options as $key => $value) { $this->options[\strtolower($key)] = $value; } } /** * (PHP 5 >= 5.0.0)
* Whether a offset exists * @link http://php.net/manual/en/arrayaccess.offsetexists.php * @param mixed $offset

* An offset to check for. *

* @return bool true on success or false on failure. *

*

* The return value will be casted to boolean if non-boolean was returned. */ public function offsetExists($offset): bool { return true; } /** * (PHP 5 >= 5.0.0)
* Offset to retrieve * @link http://php.net/manual/en/arrayaccess.offsetget.php * @param mixed $offset

* The offset to retrieve. *

* @return mixed Can return all value types. */ #[\ReturnTypeWillChange] public function offsetGet($offset) { $offset = \strtolower($offset); return \array_key_exists($offset, $this->options) ? $this->options[$offset] : self::NONE; } /** * (PHP 5 >= 5.0.0)
* Offset to set * @link http://php.net/manual/en/arrayaccess.offsetset.php * @param mixed $offset

* The offset to assign the value to. *

* @param mixed $value

* The value to set. *

* @return void */ public function offsetSet($offset, $value): void { $this->options[\strtolower($offset)] = $value; } /** * (PHP 5 >= 5.0.0)
* Offset to unset * @link http://php.net/manual/en/arrayaccess.offsetunset.php * @param mixed $offset

* The offset to unset. *

* @return void */ public function offsetUnset($offset): void { unset($this->options[$offset]); } }