我要做到以下几点:如果$开始是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>';
}
当我使用它,我得到:
sleep 14:51:01
14:51:01
14:51:01
14:51:01
14:51:01
14:51:01
14:51:01
14:51:01
14:51:01
14:51:01
14:51:01
14:51:01
14:51:01
14:51:01
14:51:01
14:51:01
14:51:01
14:51:01
14:51:01
14:51:01
所以,我可以看到脚本不正确的工作...
能否请你告诉我,为什么脚本不正确的工作?
我看到的循环:
for($start = 0; $start < 20; $start++){
if($start % 28 == 0){sleep(20);echo 'sleep ';}
echo date('H:i:s').'<br>';
而在去年价值元素$环路20 开始 。
for循环更taht 1需要使用值$开始 > 56,becose if($start % 28 == 0)
例如- 28*2 //for 2 loop.
从技术上讲,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>';
}
如果这些都不会给你正确的想法,那么你将不得不澄清究竟你的意思。