关于使用 ini_set('max_execution_time', 0);

Posted

技术标签:

【中文标题】关于使用 ini_set(\'max_execution_time\', 0);【英文标题】:On using ini_set('max_execution_time', 0);关于使用 ini_set('max_execution_time', 0); 【发布时间】:2011-09-25 06:35:44 【问题描述】:

如何使用ini_set('max_execution_time', 0);

问题 1:我是将其放在 .php 文件的顶部还是放在需要很长时间才能完成某事的函数中?

问题 2: 这个设置在设置后会一直持续吗?还是在函数停止运行后返回到原来的 300 秒或任何默认值?

【问题讨论】:

通过ini_set() 进行的更改是按脚本执行的。它仅适用于该脚本,并且仅在它运行时适用。它不会更改其他脚本的全局 PHP 设置。 有点关闭,但您可以找到一些关于将max_execution_time 设置为零的有用信息:***.com/questions/4306605/…。 【参考方案1】:

答案 1:在执行长时间运行的代码之前

答案2:一直持续到php进程结束

【讨论】:

【参考方案2】:

您可以将其放置在任何地方,但该设置在运行之前不会生效。所以如果你把它放在顶部,那么脚本将永远不会超时。如果您将它放在可能需要一段时间的函数下方,那么如果脚本需要很长时间才能到达您调用它的位置,您可能会在上面遇到超时。

当您使用 ini_set() 时,该选项在脚本的整个执行过程中保持有效。

【讨论】:

我想如果我把 ini_set() 放在一个 PHP 函数的开头,这个函数需要很长时间才能完成它的任务,那么这个选项会一直保留到函数返回给它的调用者? @Nyxynyx no -- 它会一直持续到整个脚本完全加载完成 @nyxynyx,将ini_set() 视为设置全局选项。你在哪里调用它并不重要。您在引擎上设置 PHP 选项,而不是您的脚本。无论您在哪里调用它(在函数中,而不是在函数中),然后为脚本的整个执行设置该设置,从开始到结束,无论范围如何。【参考方案3】:

2:它只持续到加载的那个页面。之后就完成了。

1:应该放在代码的开头,但是可以放在任何地方。

【讨论】:

以上是关于关于使用 ini_set('max_execution_time', 0);的主要内容,如果未能解决你的问题,请参考以下文章

ini_set() 总是返回 false

ini_set

error_reporting() 和 ini_set('error_reporting') 的区别?

使用 ini_set 设置 max_input_vars PHP.ini 指令

ini_set()

php的ini_set函数