迴圈語句輸出有關問題
來源:互聯網
上載者:User
迴圈語句輸出問題
是用for+switch可以輸出一段指定的語句,
for ($i=1; $i<=10; $i++)
{
switch ($i)
{
case 1:
echo "1";
echo "
" ;
break;
case 2:
echo "2";
echo "
" ;
break;
case 3:
echo "3";
echo "
" ;
break;
case 4:
echo "4";
echo "
" ;
break;
case 5:
echo "5";
echo "
" ;
default:
echo "OK";
}
例如以上語句可以在i等於某個數時輸出某個數字,
但是現在1-5個數字是瞬間輸出,請教可以用什麼方法讓這5個數字隔幾秒再輸出,比如輸出1後隔5秒輸出2,再隔5秒輸出3
還有個問題,上面的代碼只能輸出一次,就是說輸出1-5個數字後就不輸出了,請教有沒什麼辦法可以迴圈輸出1-5個數
就是說,輸出完1-5之後,把i變成1,又重新輸出一次
------解決方案--------------------
1.加上 sleep(5)
2.switch($i%5)
------解決方案--------------------
如果你給他加個計時器你又發現有作用了.問題不在sleep而在於你沒有意識到php是處理完所有代碼再輸出結果.
如果你要像打字機那樣顯示,那麼請使用js來控制.
探討
用了sleep函數,
結果還是會一次性輸出,並沒有輸出一個,過5秒,再輸出一個的形式
把ajax調用時間改成30秒還是一樣的結果,無法一個一個的輸出
------解決方案--------------------
延時 5 秒輸出,需要
flush();
ob_flush();
sleep(5);
對於 ie 瀏覽器,還需
echo $i . str_repeat(' ', 256);
即每次輸出不能少於 256 位元組
達到此效果的充分必要條件是 output_buffering = off