$zeit = time();
$zeit60 = time()+2;
while ($zeit < $zeit60){
sleep (1);
echo time();
}
なぜこれが機能しないのですか?
回答ありがとうございます!
$zeit = time();
$zeit60 = time()+2;
while ($zeit < $zeit60){
sleep (1);
echo time();
}
なぜこれが機能しないのですか?
回答ありがとうございます!
あなたのコードは毎秒...永遠に時間を出力します。条件は本質的に であるためwhile x < x+2
、これはもちろん true です ∀ x ∈ ℝ</p>
$zeit
時間の経過後にループが終了するように、おそらく の値を更新する必要があります。
とはいえ、特に複雑なコードを使用していない限り、次のようにするだけで十分な場合があります。
$seconds = 2;
while($seconds) {
sleep(1);
echo time();
$seconds--;
}
時間を変数に設定しているため、このループは永久に実行されます。
次のように言うのと同じです。
$a=1;
$b=$a+1;
while($a<$b){}
の値$a
は決して変わらないため、永遠に無限に閉じ込められます。一定の「待機時間」( $zeit60
) がある場合は、以下を効果的に使用できますtime()
。
$zeit60 = time()+2;
while (time() < $zeit60){
sleep (1);
echo time();
}