我正在创建一个函数来设置查询变量,如下所示。
function set_query_var(array $params)
{
$count = count($params);
$query_var = '?';
foreach ( $params as $key => $value)
{
$query_var .= $key . '=' . $value .
(($count > 1) ? '&' : NULL);
}
return $query_var;
}
上面的函数工作得很好,但唯一的问题是,它将&
添加到结束循环中,这是我不想要的。
我该如何修复它?
我总是使用implode
和array:
function set_query_var(array $params)
{
$query_var = [];
foreach ($params as $key => $value) {
$query_var[] = "{$key}={$value}";
}
return '?' . implode('&', $query_var);
}
function set_query_var(array $params)
{
$count = count($params);
$query_var = '?';
foreach ( $params as $key => $value)
{
$query_var .= $key . '=' . $value .
(($count > 1) ? '&' : NULL);
}
$query_var = rtrim( $query_var, "&");
return $query_var;
}
一个简单而肮脏的解决方案是从您的字符串中删除最后一个&
。
rtrim($string, "&");
将截断尾随的&