来自php.net(由Mark Jaquith修改,表现得像原生的PHP5功能)。
原型
_http_build_query( array|object $data, string $prefix = null, string $sep = null, string $key = '', bool $urlencode = true )
参数
$data
(array|object)
(Required)
数据的数组或对象。转换为数组。
$prefix
(string)
(Optional)
数字索引。如果设置,则用它开始参数编号。
$sep
(string)
(Optional)
参数分隔符;默认为’arg_separator.output’。
$key
(string)
(Optional)
用于为密钥名称添加前缀。
$urlencode
(bool)
(Optional)
是否在结果中使用urlencode()。
返回值
(string)
查询字符串。
源文件
路径:wp-includes/functions.php
<?php
...
function _http_build_query( $data, $prefix = null, $sep = null, $key = '', $urlencode = true ) {
$ret = array();
foreach ( (array) $data as $k => $v ) {
if ( $urlencode)
$k = urlencode($k);
if ( is_int($k) && $prefix != null )
$k = $prefix.$k;
if ( !empty($key) )
$k = $key . '%5B' . $k . '%5D';
if ( $v === null )
continue;
elseif ( $v === false )
$v = '0';
if ( is_array($v) || is_object($v) )
array_push($ret,_http_build_query($v, '', $sep, $k, $urlencode));
elseif ( $urlencode )
array_push($ret, $k.'='.urlencode($v));
else
array_push($ret, $k.'='.$v);
}
if ( null === $sep )
$sep = ini_get('arg_separator.output');
return implode($sep, $ret);
}
...
?>
其他
英文文档:https://developer.wordpress.org/reference/functions/_http_build_query/