$zeit = time();
$zeit60 = time()+2;
while ($zeit < $zeit60){
sleep (1);
echo time();
}
为什么这不起作用?
感谢回答!
答案 0 :(得分:1)
您的代码将每秒打印时间......永远。因为条件基本上是while x < x+2
,这当然是真的∀x∈ℝ
您可能应该更新$zeit
的值,以便在时间到期后,您的循环将退出。
尽管如此,除非您的代码特别复杂,否则执行以下操作可能就足够了:
$seconds = 2;
while($seconds) {
sleep(1);
echo time();
$seconds--;
}
答案 1 :(得分:1)
此循环将永远运行,因为您正在为变量设置时间。
这就像说:
$a=1;
$b=$a+1;
while($a<$b){}
$a
的值永远不会改变,因此你永远陷入无限。
如果您有一个固定的“等待时间”($zeit60
),那么您可以有效地使用time()
:
$zeit60 = time()+2;
while (time() < $zeit60){
sleep (1);
echo time();
}