<?php
error_reporting(E_ALL);
ob_start();
echo "Hello";
$content = ob_get_contents();
ob_end_flush();
ob_start();
echo $content;
?>
为什么上面的代码输出两次hello

解决方案 »

  1.   

    有什么不对吗?ob_start(); //打开输出缓冲
    echo "Hello"; //打印 Hello,这个并没有输出,只是保存到输出缓冲区
    $content = ob_get_contents(); //读取输出缓冲区内容到变量
    ob_end_flush(); //关闭输出缓冲,并输出缓冲区内容
    ob_start(); //打开输出缓冲
    echo $content; //打印变量
    //程序结束,关闭输出缓冲,并输出缓冲区内容不正好两次吗?
      

  2.   

    楼上正解
    ob_end_flush()输出 Helloecho $content 输出 Hello正好2次
      

  3.   

    这样一次
    <?php
    error_reporting(E_ALL);
    ob_start();
    echo "Hello";
    $content = ob_get_contents();
    ob_end_flush();
    ?>
    或者
    <?php
    error_reporting(E_ALL);
    ob_start();
    echo "Hello";
    $content = ob_get_contents();
    ob_start();
    echo $content;
    ?>
      

  4.   

    <?php
    error_reporting(E_ALL);
    ob_start();
    echo "Hello";
    $content = ob_get_contents();
    echo $content;
    ?>
      

  5.   

    ob_start(); //打开输出缓冲
    echo "Hello"; //打印 Hello,这个并没有输出,只是保存到输出缓冲区
    $content = ob_get_contents(); //读取输出缓冲区内容到变量
    ob_end_flush(); //关闭输出缓冲,并输出缓冲区内容
    echo $content; //打印变量
    //程序结束,关闭输出缓冲,并输出缓冲区内容