value =& $value; } protected $value; function exists($key=null): bool { if ($key === null) return true; return $this->value !== null && array_key_exists($key, $this->value); } function get($key=null) { if ($key === null) return $this->value; elseif ($this->value === null) return null; elseif (!array_key_exists($key, $this->value)) return null; else return $this->value[$key]; } function set($value, $key=null): void { if ($key === null) $this->value = $value; else $this->value[$key] = $value; } }