我正在制作一个分页剧本。作为其中的一部分,它将需要重建查询字符串,减去$_GET['page']
。
这是选项1:
#reconstruct the GETs minus $_GET['page']
$vars = $_GET;
unset($vars['page']);
$queryString = '';
foreach ($vars as $k=>$v){
$queryString .= '&'.$k.'='.$v;
}
这是选项2:
$vars = $_GET;
$queryString = '';
foreach ($vars as $k=>$v){
if ($k !== 'page'){
$queryString .= '&'.$k.'='.$v;
}
}
在速度或良好做法方面,一个比另一个好吗?据推测,unset
会稍微快一点,因为它会在找到它想要的内容时停止,而另一个会在每个循环中执行if
吗?
此外,在初始化$queryString
时,是否有理由选择NULL
而不是空字符串,或者它对任何内容都没有区别?
答案 0 :(得分:2)
不要。使用http_build_query()
。
从提供的关联(或索引)数组生成URL编码的查询字符串。
使用这种小型循环时,速度考虑绝对没有意义。代码可读性高于一切!
NULL
与空字符串完全相同,因此您可以尝试使用哪一个字符串。
答案 1 :(得分:2)
您也可以使用http_build_query()功能。尝试这样的事情:
$vars = $_GET;
unset($vars ['page']);
$queryString = http_build_query($vars , '', '&');