Heim  >  Artikel  >  Backend-Entwicklung  >  循环语句输出有关问题

循环语句输出有关问题

WBOY
WBOYOriginal
2016-06-13 13:23:45920Durchsuche

循环语句输出问题
是用for+switch可以输出一段指定的语句,

for ($i=1; $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


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn