来自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/