PHP $_POST vs将数据保存在数组中


PHP $_POST vs saving data in an array

这不是一个bug或问题。但是,当我阅读了很多与性能相关的文章时,我开始了解javascript变量如何占用更多的资源来加载,因此最好将javascript的全局变量放入局部变量中工作-特别是在for循环中。

所以我想知道如果这样的事情也发生在$_POST与PHP。因为它会给我一个性能改进,如果我有很多的后数据。将其保存在本地数组中,写入$post_data = $_POST;

然后在需要的地方引用。

不值得浪费时间。$_POST在内存中已经是一个数组,所以不需要复制它。

要获取$_POST的字节大小,可以这样做:

strlen(serialize($_POST));

(serialize将任何对象转换为可保存的字符串,unserialize d.)


FWIW在for循环,如果你不缓存数组的长度,而是使用这样的东西…

for(var i = 0; i < myarray.length; i++) {}
JS将不得不重新计算.length每次开始迭代,所以它是昂贵的,特别是在大数组

在php中,全局变量的主要关注点是内存。访问全局或局部作用域变量的性能差异可以忽略不计。

不确定JavaScript部分(您能提供参考吗?)在PHP中,这将有效地创建$_POST数组的副本,因此将使用更多的内存,而对速度的提高没有任何影响。

如果你做:

$post_data = $_POST;

PHP将在$_POST变量中创建引用到info,因此将不会有更多的内存使用,直到在$post_data中更改info。当你试图修改数据时,PHP会在内存中创建信息的副本。