PHP:while(time()< time()+ 2;){echo“为什么这不起作用?”};

时间:2013-02-06 20:15:10

标签: php time while-loop

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

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

为什么这不起作用?

感谢回答!

2 个答案:

答案 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();
}