首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP set_time_limit()的作用域是什么?

问PHP set_time_limit()的作用域是什么?
EN

Stack Overflow用户
提问于 2019-02-01 14:09:29
回答 3查看 559关注 0票数 0

我仍然不完全理解set_time_limit()是如何工作的,文档中也没有提到任何关于作用域的内容。假设我有以下代码:

代码语言:javascript
复制
public function fetchSomething()
{
    //this runs for 10 seconds
    return $fetchedData;
}

public function doSomething()
{
    set_time_limit(101);
    //do stuff for 50 seconds
    $this->fetchSomething();
    //do stuff for another 50 seconds
}

这是否会因为doSomething()运行50+10+50秒而超出时间限制并抛出异常,或者doSomething()会为50+50运行(而fetchSomething()是单独计时的)?

EN

回答 3

Stack Overflow用户

发布于 2019-02-01 14:41:12

根据the documentation的说法

也就是说,大多数web服务器都有超过PHP的时间限制,在Apache中,这是在httpd.conf中的Timeout下设置的,默认是300秒。如果使用set_time_limit()的值大于Apache的超时值,Apache将在PHP停止之前停止PHP。如果控制在脚本之外,PHP可能会让某些脚本超过时间限制。如果您使用sleep()函数的值大于脚本剩余的执行时间,也会发生这种情况。

票数 0
EN

Stack Overflow用户

发布于 2019-02-01 14:55:22

它持续脚本的生命周期-在脚本内部,它将从调用时起产生101秒的影响

票数 0
EN

Stack Overflow用户

发布于 2019-02-01 14:59:21

它设置允许脚本运行的秒数。如果达到该值,脚本将返回致命错误。默认限制为30秒,如果存在,则为php.ini中定义的max_execution_time值。

调用时,set_time_limit()从零重新启动超时计数器。换句话说,如果超时是默认的30秒,并且在脚本执行25秒时调用了set_time_limit(20),那么在超时之前,脚本将总共运行45秒。

阅读官方文档:Here

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54473788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档