首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >没有参数值的http_build_query (空值)

没有参数值的http_build_query (空值)
EN

Stack Overflow用户
提问于 2019-03-21 14:42:54
回答 2查看 2.3K关注 0票数 3

PHP函数查询对于构建带有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
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-21 17:37:33

我能用http_build_query实现这个结果吗?

不是的。在内部,无论参数的值是什么,http_build_query都会追加=键值分隔符。您可以看到源代码这里 (PHP7.3.3)

意味着您要么需要接受参数的cancel-renewal=外观,要么需要重新设计路径以获得类似于/mypage/cancel-renewal?subscription-id=42的内容。

第三个选项是编写自己的简单函数来构建查询字符串。

票数 3
EN

Stack Overflow用户

发布于 2019-03-21 15:17:17

使用这个;

代码语言:javascript
复制
$query = array("subscription-id" => 42, "cancel-renewal" => "");
$http_query = http_build_query($query);

这将返回?subscription-id=42&cancel-renewal=。并且在isset()中非常好地工作

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55283034

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档