为什么php没有按顺序执行命令顺序?

时间:2014-08-27 06:02:16

标签: php codeigniter

我编写了这段代码来检查实际代码在php中运行的实时序列

    header('Content-type: text/html; charset=utf-8' );
    echo 'Begin ...<br />';
    flush();
    ob_flush();

    echo "Hello<br />";
    flush();    
    ob_flush();
    sleep(5);

预期输出应按以下顺序排列: 1.开始 你好 3.睡觉(5)

但它们实际执行的顺序是: 1.Begin 2.休眠(5) 3.Hello 如果php真的顺序那么它应该按照给定的顺序然后为什么这个区别?如果我想严格按顺序执行命令,那么我需要什么程序来更新进度条宽度。

您可以通过评论它在START和Hello之间等待的睡眠功能来检查此行为。 我使用codeigniter框架。

1 个答案:

答案 0 :(得分:0)

在大多数情况下单独刷新是不够的,浏览器至少需要我认为它是256kb的数据,至少在一些浏览器中它依赖和改变,在它显示刷新之前,所以它是fluesh但是你没有看到结果,尝试类似

echo "Hello<br />";
str_repeat(" ",256);

我知道它太多但它应该有效,那么你应该看到你的期望

如果它不符合您的预期,您可以使用该号码,因为我说这也取决于使用的浏览器:D