PHP build and parse query strings

PHP
<?php
function encode_query(array $params): string
{
    return http_build_query($params, '', '&', PHP_QUERY_RFC3986);
}

function decode_query(string $query): array
{
    $params = [];
    parse_str(ltrim($query, '?'), $params);
    return $params;
}

// encode_query(['q' => 'a b', 'page' => 2]) => q=a%20b&page=2