关于使用 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);的主要内容,如果未能解决你的问题,请参考以下文章
error_reporting() 和 ini_set('error_reporting') 的区别?