key = $key; $this->allowEmpty = $params["allow_empty"] ?? false; } /** @var int|string */ protected $key; protected bool $allowEmpty; function exists(): bool { $key = $this->key; if ($key === null) return false; return array_key_exists($key, $_POST) || array_key_exists($key, $_GET); } public function available(): bool { $key = $this->key; if ($key === null) return false; if (array_key_exists($key, $_POST)) { return $this->allowEmpty || $_POST[$key] !== ""; } elseif (array_key_exists($key, $_GET)) { return $this->allowEmpty || $_GET[$key] !== ""; } else { return false; } } function get($default=null) { $key = $this->key; if ($key === null) return $default; if (array_key_exists($key, $_POST)) { $value = $_POST[$key]; if ($value === "" && !$this->allowEmpty) return $default; return $value; } elseif (array_key_exists($key, $_GET)) { $value = $_GET[$key]; if ($value === "" && !$this->allowEmpty) return $default; return $value; } else { return $default; } } function set($value): void { $key = $this->key; if ($key === null) return; if (!array_key_exists($key, $_POST) && array_key_exists($key, $_GET)) { cl::set($_GET, $key, $value); } else { cl::set($_POST, $key, $value); } } function del(): void { $key = $this->key; if ($key === null) return; if (!array_key_exists($key, $_POST) && array_key_exists($key, $_GET)) { cl::del($_GET, $key); } else { cl::del($_POST, $key); } } }