睡眠打破了剧本

时间:2017-12-07 07:19:19

标签: php

我想简单地在循环中设置睡眠。但它没有按预期工作

for ($i = 1; $i <= 6; $i++) {
    echo $i;
    sleep(1);
}

如果循环时间超过5秒。它不起作用(根本不打印)。

我在Teh Playground进行了测试,出现此错误:

  

执行时间超过5秒,发送SIGTERM并终止

编辑:修改set_time_limit不会改变任何内容......

它似乎与我服务器的配置有关...

4 个答案:

答案 0 :(得分:1)

  

SIGTERM 是通常用于管理终止进程的信号,由tehplayground的某些服务器设置触发,该设置与PHP无关

由于您的程序会执行 tehplayground 允许的时间,因此您的代码没有任何问题。

我在服务器上运行它运行正常。

增加服务器的时间限制

对于运行时

ini_set('max_execution_time', 60); //60 secs

在php.ini上更改此内容以进行永久性更改

; Maximum execution time of each script, in seconds
; http://php.net/max-execution-time
; Note: This directive is hardcoded to 0 for the CLI SAPI
max_execution_time = 300

将其设置为0表示没有时间限制。

答案 1 :(得分:0)

for的第二个条件设置为更大,即$i <= 60;

for ($i = 1; $i <= 60; $i++) {
    echo $i;
    sleep(1);
}

条件说&#34;循环该块多次,因为$ i小于6&#34;。
for是一个函数,

  1. 首先定义$ i的值等于1,$i = 1;
  2. 第二个你定义条件,即当$ i小于6时执行阻止,$i <= 6;
  3. 每个循环中的第三个将$ i增加一个(双加),$i++

答案 2 :(得分:0)

我不认为您的代码有任何问题,您是否在自己的服务器上出现任何错误?

我尝试了你的代码,它运行正常,只需复制粘贴即可。

我认为你得到的错误只是 TehPlayground 不喜欢执行超过5秒的事情,因为我将for循环设置为小于4并且没有得到错误信息。

for ($i = 1; $i <= 4; $i++) {
    echo $i;
    sleep(1);
}

答案 3 :(得分:0)

当我在本地计算机上运行它时,这很好用。我认为当执行时间超过5秒时,您的脚本执行会在Teh Playground中超时。