我想简单地在循环中设置睡眠。但它没有按预期工作
for ($i = 1; $i <= 6; $i++) {
echo $i;
sleep(1);
}
如果循环时间超过5秒。它不起作用(根本不打印)。
我在Teh Playground进行了测试,出现此错误:
执行时间超过5秒,发送SIGTERM并终止
编辑:修改set_time_limit不会改变任何内容......
它似乎与我服务器的配置有关...
答案 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
是一个函数,
$i = 1;
$i <= 6;
$i++
答案 2 :(得分:0)
我不认为您的代码有任何问题,您是否在自己的服务器上出现任何错误?
我尝试了你的代码,它运行正常,只需复制粘贴即可。
我认为你得到的错误只是 TehPlayground 不喜欢执行超过5秒的事情,因为我将for循环设置为小于4并且没有得到错误信息。
for ($i = 1; $i <= 4; $i++) {
echo $i;
sleep(1);
}
答案 3 :(得分:0)
当我在本地计算机上运行它时,这很好用。我认为当执行时间超过5秒时,您的脚本执行会在Teh Playground中超时。