- 本文地址: https://www.yangdx.com/2020/10/168.html
- 转载请注明出处
在对接 API 接口的时候,我们常常使用 http_build_query
函数来拼接参数。但是,这个函数会对空值做过滤和转换,不小心的话,很容易踩坑。
下面演示执行:
$args = [
'key1' => 0,
'key2' => '',
'key3' => '0',
'key4' => [],
'key5' => null,
'key6' => false,
'key7' => true
];
$str = http_build_query($args);
echo $str;
输出结果为:
key1=0&key2=&key3=0&key6=0&key7=1
根据以上结果,可知 http_build_query 的处理逻辑为:
- 数字 0 转换后变成字符串 0
- 空字符串转换后仍被保留
- 字符串 0 转换为字符串 0
- 空数组的 key 会被丢弃(多维数组也是如此)
- null 值的 key 会被丢弃
- 布尔值 false 转换后变成字符串 0
- 布尔值 true 转换后变成字符串 1
所以,我们在使用 http_build_query
函数的时候,要特别注意空数组和 null 值的情况,避免踩坑。
快来评论一下吧!
发表评论