首页 > 解决方案 > 循环之间的睡眠功能在任何循环执行之前运行

问题描述

我试图让脚本在继续执行之前等待 3 秒。问题是 sleep 函数首先运行并休眠 3 秒,然后两个循环都运行。

if ($resultCheck > 0) {
  while ($row = mysqli_fetch_all($result)) {


      for ($i=0; $i < 3; $i++) {
        echo $row[$i][0];
      }
         sleep(3);

      $values = sizeof($row);
      for ($i=3; $i < $values; $i++) {
        echo $row[$i][0];
      }

    }


    }

标签: php

解决方案


在每个 echo 之后添加这一行:flush(); . 它将导致立即显示输出。

您的代码是正确的,但脚本结束后会显示输出。要立即显示输出,需要使用flush()函数刷新输出缓冲区。

换行:

echo $row[$i][0];

echo $row[$i][0];
flush();

可能有更多的输出缓冲层导致输出延迟。请参阅如何在 PHP 中禁用输出缓冲。如果刷新不起作用,您可以将ob_flush与刷新一起使用。


推荐阅读