>  기사  >  백엔드 개발  >  循环语句输出有关问题

循环语句输出有关问题

WBOY
WBOY원래의
2016-06-13 10:35:18920검색

循环语句输出问题
是用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


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.