php http_build_query删除空值[已关闭]

y4ekin9u  于 2023-09-29  发布在  PHP
关注(0)|答案(1)|浏览(169)

已关闭,此问题为opinion-based。它目前不接受回答。
**想改善这个问题吗?**更新问题,以便editing this post可以用事实和引用来回答。

2天前关闭。
Improve this question
我正在使用http_build_query将值传递给API。我希望能够传递空值,但http_build_query会删除任何空值。
我可以访问API,所以可以调整它。最好的方法是使用一个简单的替换,所以不是传递实际的null,而是传递一个替代,然后在API中替换它,或者有更好的方法吗?

$params = ["id" => 1, "startDate": "2023-09-26", "endDate": null];

相反,我是否应该做一些类似的事情,在API中用null替换null

$params = ["id" => 1, "startDate": "2023-09-26", "endDate": "**null**"];
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));
qgzx9mmu

qgzx9mmu1#

http查询中的键值对总是:,所以你可以使用空字符串或字符串'null'来代替null。

$params = ["id" => 1, "startDate"=> "2023-09-26", "endDate"=> "null"];

将生成查询字符串

id=1&startDate=2023-09-26&endDate=null

如果您想保留数据类型,最好使用JSON请求,如@Buttered_吐司在评论中所建议的

相关问题