src/QueryParams.php
public static function get(array $server): array
    {
        $params = [];
        if (isset($server['QUERY_STRING'])) {
            $query = ltrim($server['QUERY_STRING'], '?');
            foreach (explode('&', $query) as $pair) {
                if ($pair) {
                    list($name, $value) = self::normalize(
                        array_map('urldecode', explode('=', $pair, 2))
                    );
                    $params[$name][] = $value;
                }
            }
        }
        return $params ? array_map(function ($v) {
            return count($v) === 1 ? $v[0] : $v;
        }, $params) : $params;
    }
public static function get(array $server): array
    {
        $params = [];
        if (isset($server['QUERY_STRING'])) {
            $query = ltrim($server['QUERY_STRING'], '?');
            foreach (explode('&', $query) as $pair) {
                if ($pair) {
                    list($name, $value) = self::normalize(
                        array_map('urldecode', explode('=', $pair, 2))
                    );
                    $params[$name][] = $value;
                }
            }
        }
        return $params ? array_map(function ($v) {
            return count($v) === 1 ? $v[0] : $v;
        }, $params) : $params;
    }
Parses the query string from the `QUERY_STRING` in the provided array.

For the URL `file.php?test[]=1&test[]=2&noval&foobar=foo&foobar=bar&abc=123`,
the returned array will be:

```php
[
'test' => ['1', '2'],
'noval' => '',
'foobar' => ['foo', 'bar'],
'abc' => '123'
];
```

@param array<string,mixed> $server The server values array