这不是错误或问题。但是,当我阅读很多与性能相关的文章时,我开始了解 javascript 变量如何占用更多资源来加载,因此最好将 javascript 的全局变量放入局部变量中才能工作 - 特别是在 for 循环中。
所以我想知道这样的事情是否也会发生在 PHP 的 $_POST 上。如果我有很多帖子数据,它会给我带来性能提升吗?将其保存在本地数组中,例如 $post_data = $_POST;
然后我在需要的地方引用。
这不是错误或问题。但是,当我阅读很多与性能相关的文章时,我开始了解 javascript 变量如何占用更多资源来加载,因此最好将 javascript 的全局变量放入局部变量中才能工作 - 特别是在 for 循环中。
所以我想知道这样的事情是否也会发生在 PHP 的 $_POST 上。如果我有很多帖子数据,它会给我带来性能提升吗?将其保存在本地数组中,例如 $post_data = $_POST;
然后我在需要的地方引用。
真的不值得花时间。 $_POST
已经是内存中的一个数组,所以不需要复制它。
要获取$_POST
以字节为单位的大小,您可以执行以下操作:
strlen(serialize($_POST));
(serialize
将任何对象变成可以保存的字符串和unserialize
d。)
循环中的FWIW for
,如果您不缓存数组的长度,而是使用类似这样的东西......
for(var i = 0; i < myarray.length; i++) {}
...JS.length
每次开始迭代时都必须重新计算,所以它很昂贵,特别是在大数组上。
如果你做:
$post_data = $_POST;
PHP 将只创建对变量中信息的引用,因此您不会有更多的内存使用,直到. 如果您尝试更改数据时 PHP 会在内存中创建信息副本。$_POST
$post_data
不确定 JavaScript 部分(您能提供参考吗?)。在 PHP 中,这将有效地创建 $_POST 数组的副本,因此会使用更多内存,而不会对速度提高产生任何影响。
在 php 中,全局变量的主要关注点是内存。访问全局或局部范围变量的性能差异可以忽略不计。