2
$zeit = time();
$zeit60 = time()+2;

while ($zeit < $zeit60){
sleep (1);
echo time();
}

为什么这不起作用?

感谢您的回答!

4

2 回答 2

1

您的代码将每秒打印时间......永远。因为条件本质while x < x+2上是 ,当然是真的 ∀ x ∈ ℝ</p>

您可能应该更新 的值$zeit,以便在时间到期后您的循环将退出。

也就是说,除非您有特别复杂的代码,否则执行以下操作可能就足够了:

$seconds = 2;
while($seconds) {
    sleep(1);
    echo time();
    $seconds--;
}
于 2013-02-06T20:20:22.390 回答
1

此循环将永远运行,因为您将时间设置为变量。

这就像说:

$a=1;
$b=$a+1;
while($a<$b){}

的值$a永远不会改变,因此你永远被困在无限中。如果您有固定的“等待时间”($zeit60),那么您可以有效地使用time()

$zeit60 = time()+2;

while (time() < $zeit60){
    sleep (1);
    echo time();
}
于 2013-02-06T20:21:34.717 回答