2013-05-03 28 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將在內存中創建信息副本時更改數據。