ini_set / ini_get memory_limit恢复内存php

时间:2012-05-24 14:00:50

标签: php php-ini


我正在编写一个脚本,我需要在某个时刻将内存限制设置为非常高的值。但是,之后我需要恢复内存限制。


但是,如果您的脚本未调用 ini_set 来设置内存限制, ini_get 将返回-1。
我想做这样的事情:

$oldLimit  = ini_get("memory_limit");
ini_set("memory_limit", "220M");
do something 
//restore memory
ini_set("memory_limit", -1);

但是, $ oldLimit 是-1。
在这种情况下-1是什么意思。
提前谢谢。

2 个答案:

答案 0 :(得分:4)

-1表示无限制,换句话说,您受服务器物理内存的限制。因此将memory_limit设置为高位

是没有意义的

答案 1 :(得分:3)

根据文档,-1表示没有内存限制(http://ca.php.net/manual/en/ini.core.php)

(话虽如此,可能会有其他记忆重新造成你的悲伤。)

此外,ini_set()仅适用于该运行脚本的持续时间,并且不是永久性的,也不适用于当时或将来运行的任何其他脚本。因此,如果您确实进行了更改,则可能不需要将它们重新设置,因为它们会在脚本结束时退回。