2

使用ini_get('memory_limit')将获得 php.ini 文件中指定的内容(我想)。但是如果我运行ini_set('memory_limit', 'somethingInsanelyHigh')然后ini_get(..)再次运行,它将返回我之前设置的内容。这让我相信没有真正的方法可以增加内存限制并检测它是否真的增加了,是吗?

实际上是做什么的ini_set(..)?它只是在某处更新变量还是实际上增加了限制?如果是这样,我怎么知道它是否有效?

4

1 回答 1

5

ini_set成功或FALSE失败时返回旧值。所以你可能想检查一下:

if (ini_set('memory_limit', 'somethingInsanelyHigh') === false) {
  // cannot set memory_limit
}

此外,考虑到这将设置当前 PHP 进程将占用的最大内存量,因此如果您要对该脚本有多个并发请求,您将需要一些合理的东西,以防您的脚本真的吃掉这么多内存。

也将其设置为-1意味着没有内存限制。

编辑:禁用内存限制是将值设置为-1,而不是将其设置为0

于 2013-04-03T16:18:49.217 回答