public static function queryString($q, $extra = array(), $escape = false)
{
if (empty($q) && empty($extra)) {
return null;
}
$join = '&';
if ($escape === true) {
$join = '&';
}
$out = '';
if (is_array($q)) {
$q = array_merge($q, $extra);
} else {
$out = $q;
$q = $extra;
}
$addition = http_build_query($q, null, $join);
if ($out && $addition && substr($out, strlen($join) * -1, strlen($join)) !== $join) {
$out .= $join;
}
$out .= $addition;
if (isset($out[0]) && $out[0] !== '?') {
$out = '?' . $out;
}
return $out;
}