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