我正在创建一个设置查询变量的函数,如下所示。
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;
}
上面的函数工作正常,但唯一的问题就是,它将&
添加到我不想要的结束循环中。
我该如何解决?
答案 0 :(得分:7)
我总是使用implode
和数组:
function set_query_var(array $params)
{
$query_var = [];
foreach ($params as $key => $value) {
$query_var[] = "{$key}={$value}";
}
return '?' . implode('&', $query_var);
}
答案 1 :(得分:0)
解决问题的一个简单而肮脏的方法是从字符串中删除最后一个&
。
rtrim($string, "&");
会削减尾随&
。
答案 2 :(得分:0)
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;
}