若何避免一个函数执行工夫太长呢?正在PHP里能够用pcntl时钟旌旗灯号+异样来完成。
代码以下:
<?php declare(ticks = 1); function a() { sleep(10); echo "a finishi\n"; } function b() { echo "Stop\n"; } 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 "timeout\n"; } b(); a(); b();
原理是正在函数执行前先设定一个时钟旌旗灯号,假如函数的执行超越规则工夫,旌旗灯号会被触发,旌旗灯号解决函数会抛出一个异样,被外层代码捕捉。这样就跳出了原来函数的执行,接着执行上面的代码。假如函数正在规则的工夫内,时钟旌旗灯号没有会触发,正在函数完结后肃清时钟旌旗灯号,没有会有异样抛出。
更多PHP相干常识,请拜访PHP中文网!
以上就是PHP若何为函数执行设置超时的具体内容,更多请存眷资源魔其它相干文章!
标签: php开发教程 php开发资料 php开发自学 pcntl 时钟信号 异常
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
抱歉,评论功能暂时关闭!