2013-05-03 70 views
0

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

所以我想知道是否这样的事情也发生在$ _POST与PHP。 如果我有大量的发布数据,它会给我提高性能。保存在本地数组中,例如$ post_data = $ _POST;

然后我在需要的地方参考。

+0

我不认为会有明显的性能改善,如果有的话。 – 2013-05-03 07:25:55

回答

2

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

要获得$_POST字节大小,你可以这样做:

strlen(serialize($_POST)); 

serialize会变成任何物体在其中可以保存和unserialize d的字符串。)


FWIW在for循环中,如果你不缓存阵列的长度,而是使用类似这样的东西...

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

... JS每次开始迭代时都必须重新计算.length,所以它很贵,特别是在大数组上。

+0

答案的第二部分似乎与这个问题无关。 – 2013-05-03 07:26:43

+0

@杰克 - 是啊,只是扔在我的两分钱... OP提到JS循环,激动:) – Ben 2013-05-03 07:36:15

0

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

0

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

0

如果您:

$post_data = $_POST; 

PHP将在$_POST变量$post_data只创建参考到的信息,所以你不会有更多的内存使用量,直至changind信息。如果您尝试在PHP将在内存中创建信息副本时更改数据。