php专区

 首页 > php专区 > PHP基础 > 函数 > php设置一个函数的最大运行时间

php设置一个函数的最大运行时间

分享到:
【字体:

如何防止一个函数执行时间过长呢?在PHP里可以用pcntl时钟信号+异常来实现


declare(ticks = 1);
function a()
{
    sleep(10);
    echo "a finishin";
}
function b()
{
    echo "Stopn";
}
function c()
{
    usleep(100000);
}

function sig()
{
    throw new Exception;
}

try
{
    pcntl_alarm(1);
    pcntl_signal(SIGALRM, "sig");
    a();
    pcntl_alarm(0);
}
catch(Exception $e)
{
    echo "timeoutn";
}

b();
a();
b();
原理是在函数执行前先设定一个时钟信号,如果函数的执行超过规定时间,信号会被触发,信号处理函数会抛出一个异常,被外层代码捕获。这样就跳出了原来函数的执行,接着执行下面的代码。如果函数在规定的时间内,时钟信号不会触发,在函数结束后清除时钟信号,不会有异常抛出。

分享到:
php如何在一个类中引入另外一个类
有时候需要在一个类中调用另外一个类里面的方法, 然后另外一个类又需要调用当前类的方法,怎么办呢? 可以直接引入类对象的方式调用另外一个类的方法 示例如下(传值方式) class a { function b($obj) { $obj->test(); } } class b { function test() { echo ...
在PHP中使用CURL实现GET和POST请求的方法
1.CURL介绍 CURL是一个利用URL语法规定来传输文件和数据的工具.支持很多协议,如HTTP、FTP、TELNET等。 幸运的是PHP也支持CURL库。本文将介绍curl的一些高级特性,以及在PHP中如何运用它。 2.基本结构 在学习更为复杂的功能之前,先来看一下在PHP中建立CURL请求的基本步骤: ...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……