PHP函数http_build_query对于使用GET参数构建URL非常方便。但是有时候我喜欢使用无值的“布尔”参数,就像这样:
/mypage?subscription-id=42&cancel-renewal
然后我用简单的isset
检查一下。我可以用http_build_query
来达到这个结果吗?
编辑:向参数分配空值似乎不起作用:
cancel-renewal => ''
产生cancel-renewal=
cancel-renewal => null
导致参数被省略cancel-renewal => false
产生cancel-renewal=0
答案 0 :(得分:1)
我可以使用http_build_query达到此结果吗?
不。内部http_build_query
会附加=
键值分隔符,无论参数的值是多少。
您可以看到源代码here(PHP 7.3.3)
意味着您要么需要接受参数的cancel-renewal=
外观,要么可以将路径重新设计为类似/mypage/cancel-renewal?subscription-id=42
第三种选择是编写自己的简单函数来构建查询字符串。
答案 1 :(得分:0)
使用它;
$query = array("subscription-id" => 42, "cancel-renewal" => "");
$http_query = http_build_query($query);
这将返回?subscription-id=42&cancel-renewal=
。并且可以与isset()