0

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

所以我想知道这样的事情是否也会发生在 PHP 的 $_POST 上。如果我有很多帖子数据,它会给我带来性能提升吗?将其保存在本地数组中,例如 $post_data = $_POST;

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

4

4 回答 4

2

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

要获取$_POST以字节为单位的大小,您可以执行以下操作:

strlen(serialize($_POST));

serialize将任何对象变成可以保存的字符串和unserialized。)


循环中的FWIW for,如果您不缓存数组的长度,而是使用类似这样的东西......

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

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

于 2013-05-03T07:23:02.063 回答
0

如果你做:

$post_data = $_POST;

PHP 将只创建对变量中信息的引用,因此您不会有更多的内存使用,直到. 如果您尝试更改数据时 PHP 会在内存中创建信息副本。$_POST$post_data

于 2013-05-03T07:40:39.920 回答
0

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

于 2013-05-03T07:33:56.850 回答
0

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

于 2013-05-03T07:26:54.950 回答