Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 什么';http_build_str()和http_build_query()之间的区别是什么?_Php - Fatal编程技术网

Php 什么';http_build_str()和http_build_query()之间的区别是什么?

Php 什么';http_build_str()和http_build_query()之间的区别是什么?,php,Php,我只是发现这些功能似乎是多余的。 http\u build\u query()属于标准php函数。 http\u build\u str()是pecl\u http包的一部分 它们是100%冗余的吗 我专注于获得完美的反向函数parse_str()。因为http\u build query()已损坏。(见附件) 我想知道http\u build\u str() http\u build\u str()也可以将对象或对象作为其主要参数,而http\u build\u query()只接受数组。在某

我只是发现这些功能似乎是多余的。
http\u build\u query()
属于标准php函数。
http\u build\u str()
是pecl\u http包的一部分

它们是100%冗余的吗

我专注于获得完美的反向函数
parse_str()
。因为
http\u build query()
已损坏。(见附件)
我想知道
http\u build\u str()


http\u build\u str()
也可以将对象或对象作为其主要参数,而
http\u build\u query()
只接受数组。

在某种程度上是多余的。但是,如果您参考PHP文档,应该会看到明显的区别:


至少,您应该看到http_build_query()是PHP的核心,并且支持一个额外的编码样式参数。您应该看到http\u build\u str()是一个PECL扩展。

为什么不阅读API呢?因为build\u查询是在PHP5中引入的。没有理由安装pecl版本,除非您使用的是旧版本的PHP,并且/或者正在尝试将php4代码库推入php5安装。谢谢@MarcB,您带来了第一个有价值的输入;-)我还更新了我的问题,使之更具针对性specific@thatidiotguy这并不是很明显,有人可能会认为http_build_str在默认情况下做到了这一点,而API只是“没有说”这一点。。。另外,由于http_build_str只接受数组,所以您也可以认为它是一些“遗留”函数……是的,我看到了。但是有2个函数有什么意义呢。除了“官方版本的
parse\u str
(一个内置php函数)不是
http\u build\u query
(另一个内置php函数),而是
http\u build\u str
(一个外部PECL扩展)。这难道不令人困惑吗?如何理解这一点并明智地在2个选项之间做出选择?不。文档引用了http_build_query(),而不是pecl扩展!因此,如果有“官方”的反向,它就不是pecl函数。如上所述,pecl版本无疑是在http_build_query()之前创建的是集成到核心PHP中的。你是对的。
http\u build\u Str()
声称与
parse\u Str()
相反,而
http\u build\u query()却让我感到困惑
没有。对不起,我说得太含糊了,更新了我的问题,补充了更多的细节。@lenzai由于PHP的发展方式,它充满了具有重复用途的函数。很难进行重大修订,也很难让内容向后兼容,因此语言中充斥着对旧扩展的引用,而这些旧扩展实际上已经不再需要了如果您使用核心语言的更新版本。2出于历史原因,出于类似目的的重复函数很烦人,但很有意义。但它们都不是parse_str的完美反面:(