[英]Break If Statement in While loop without breaking the while loop PHP
[英]PHP While loop not breaking, but works in debugger?
有一個循環的簡單腳本。 當我單步執行代碼時,在調試器模式下工作正常。 但是,當它在沒有調試器的情況下運行時,它永遠不會結束/中斷。
只要我設定的時間就應該運行,然后跳出循環。 正如我所說,這在調試器中工作得非常好,但是當它沒有它運行時,它只是永遠循環,不管時間
任何建議為什么?
$time_start = microtime(true);
$n = 0;
while ( 1 ){
$n++ ;
echo $n;
$time_end = microtime(true);
$time = $time_end - $time_start;
if($time > 1.5){
break;
}
}
我想使用 While,因為程序將用於偵聽套接字。 但如果滿足時間,需要確保時間結束
它可以工作,但 PHP 非常快。 所以你必須更加耐心,直到時間過去。 降低門檻。
也許您應該考慮改用hrtime 。
當您使用調試器時,時間仍在運行,因此到達下一步之前的延遲很快結束並滿足中斷條件。
$time_start = microtime(true);
$n = 0;
while ( 1 ){
$n++ ;
echo $n;
$time_end = microtime(true);
$time = $time_end - $time_start;
echo " :: $time\n";
if($time > 1.5){
break;
}
}
在稍微修改 output 后查看最后的結果。
1354524 :: 1.4999921321869
1354525 :: 1.4999930858612
1354526 :: 1.4999940395355
1354527 :: 1.4999949932098
1354528 :: 1.4999949932098
1354529 :: 1.4999961853027
1354530 :: 1.4999971389771
1354531 :: 1.4999980926514
1354532 :: 1.4999990463257
1354533 :: 1.4999990463257
1354534 :: 1.5
1354535 :: 1.5000011920929
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.