Php 如果条件满足,命令睡眠暂停20秒

Php 如果条件满足,命令睡眠暂停20秒,php,sleep,Php,Sleep,我想执行以下操作:如果$start是28的倍数,脚本将暂停20秒,然后继续工作 为此,我写道: set_time_limit(0); ini_set('display_errors', 1); error_reporting(E_ALL); date_default_timezone_set("Europe/Moscow"); $start = 0; $end = 2000; for($start = 0; $start < 20; $start++){ if($start % 28

我想执行以下操作:如果$start是28的倍数,脚本将暂停20秒,然后继续工作

为此,我写道:

set_time_limit(0);
ini_set('display_errors', 1);
error_reporting(E_ALL);
date_default_timezone_set("Europe/Moscow"); 
$start = 0;
$end = 2000;

for($start = 0; $start < 20; $start++){
if($start % 28 == 0){sleep(20);echo 'sleep ';}
echo date('H:i:s').'<br>';
}
所以我可以看到脚本工作不正常


你能告诉我为什么脚本不能正常工作吗?

从技术上讲,0是28的倍数,而你的程序确实是根据这一点工作的,所以我想这根本不是你想要的。我可以想象有两种方式,也许在代码中我们可以更好地理解彼此:

// 1. Sleep after every 28 times outputting current date:
for($i = $start; $i < $end; $i++) {
    echo date('H:i:s').'<br>';
    if($i % 28 == 27) {
        echo 'sleeping...<br>';
        sleep(20);
    }
}

// 2. Sleep before every 28th time outputting the current date, except the first time:
for($i = $start; $i < $end; $i++) {
    if($i != 0) && (($i % 28) == 0)) {
        echo 'sleeping...<br>';
        sleep(20);
    }
    echo date('H:i:s').'<br>';
}
//1。每28次输出当前日期后睡眠:
对于($i=$start;$i<$end;$i++){
回音日期('H:i:s')。
; 如果($i%28==27){ 呼应“睡眠…
”; 睡眠(20); } } // 2. 每28次输出当前日期前睡眠,第一次除外: 对于($i=$start;$i<$end;$i++){ 如果($i!=0)和($i%28)==0)){ 呼应“睡眠…
”; 睡眠(20); } 回音日期('H:i:s')。
; }

如果这两个都没有给你正确的想法,那么你必须澄清你的确切意思。

从技术上讲,0是28的倍数,你的程序确实是根据这一点工作的,所以我想这根本不是你想要的。我可以想象有两种方式,也许在代码中我们可以更好地理解彼此:

// 1. Sleep after every 28 times outputting current date:
for($i = $start; $i < $end; $i++) {
    echo date('H:i:s').'<br>';
    if($i % 28 == 27) {
        echo 'sleeping...<br>';
        sleep(20);
    }
}

// 2. Sleep before every 28th time outputting the current date, except the first time:
for($i = $start; $i < $end; $i++) {
    if($i != 0) && (($i % 28) == 0)) {
        echo 'sleeping...<br>';
        sleep(20);
    }
    echo date('H:i:s').'<br>';
}
//1。每28次输出当前日期后睡眠:
对于($i=$start;$i<$end;$i++){
回音日期('H:i:s')。
; 如果($i%28==27){ 呼应“睡眠…
”; 睡眠(20); } } // 2. 每28次输出当前日期前睡眠,第一次除外: 对于($i=$start;$i<$end;$i++){ 如果($i!=0)和($i%28)==0)){ 呼应“睡眠…
”; 睡眠(20); } 回音日期('H:i:s')。
; }
如果这两个都不能给你正确的想法,那么你必须澄清你的确切意思。

我明白了这个循环:

for($start = 0; $start < 20; $start++){
if($start % 28 == 0){sleep(20);echo 'sleep ';}
echo date('H:i:s').'<br>';
($start=0;$start<20;$start++)的
{
如果($start%28==0){sleep(20);回显'sleep';}
回音日期('H:i:s')。
循环20中的最后一个值元素$start

对于循环更多taht 1,需要使用value$start>56,因为如果($start%28==0),则使用
if

例如-
28*2//For 2循环。

我看到这个循环:

for($start = 0; $start < 20; $start++){
if($start % 28 == 0){sleep(20);echo 'sleep ';}
echo date('H:i:s').'<br>';
($start=0;$start<20;$start++)的
{
如果($start%28==0){sleep(20);回显'sleep';}
回音日期('H:i:s')。
循环20中的最后一个值元素$start

对于循环更多taht 1,需要使用value$start>56,因为如果($start%28==0),则使用
if


例如-
28*2//For 2循环。

它将不起作用,因为
$i%28
永远不会等于0,如果0可能让您感到困惑的是,0是28的倍数?根据您真正想要的(我无法解析您的初始句子),您可以检查
($start%28)==27
在循环结束时,每28次迭代后都会出现这种情况。可能您想写
$start<$end
?@UlrichEckhardt我想让值$start乘以值28,脚本将在20秒的时间内暂停,脚本继续工作。这样做正确吗?而且它不会工作,因为
$I%28
会永远不要等于0如果0可能是你的困惑是0是28的倍数?根据你真正想要的(我无法解析你的首句),你可以检查
($start%28)==27
在循环结束时,每28次迭代后都会出现这种情况。可能您想写
$start<$end
?@UlrichEckhardt我想让值$start乘以值28,脚本将在20秒后暂停,脚本继续工作。这样做对吗?