关于性能:PHP $ _POST vs保存数组中的数据

PHP $_POST vs saving data in an array

本问题已经有最佳答案,请猛点这里访问。

这不是错误或问题。但是,当我读到很多关于性能相关的文章时,我开始了解javascript变量如何需要更多的资源来加载,因此最好将javascript的全局变量放入一个本地变量来工作,特别是在for循环中。

所以我想知道在使用php的$u post上是否也会发生这种情况。如果我有很多post数据,它会给我一个性能改进吗?将其保存在本地数组中,比如$post_data=$_post;

然后我在需要的地方引用。


不值得花时间。$_POST已经是内存中的一个数组,因此不需要复制它。

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

1
strlen(serialize($_POST));

(serialize将任何对象转换成一个可以保存的字符串和unserialized。)

fwiw在for循环中,如果不缓存数组的长度,而是使用类似这样的方法…

1
for(var i = 0; i < myarray.length; i++) {}

…JS每次开始迭代时都必须重新计算.length,因此成本很高,特别是在大型阵列上。


如果你做:

1
$post_data = $_POST;

php只会在$_POST变量中创建对info的引用,所以在$post_data中的changind info之前,您不会有更多的内存使用。如果您试图在PHP将在内存中创建信息副本时更改数据。


不确定javascript部分(请提供参考资料?)。在PHP中,这将有效地创建一个$_Post数组的副本,因此将使用更多的内存,而不会对速度提高产生任何影响。


在PHP中,全局变量的主要关注点是内存。访问全局或局部范围变量时的性能差异是可忽略的。