面试问题:我们可以在标题前有回音吗?

Waz*_*azy 12 php header echo

我出现了进行php测试,他们被问到一个我无法找到答案的问题.

问题是这样的.

echo "MESSI is injured!!";
header("Location:somepage.php");
Run Code Online (Sandbox Code Playgroud)

采访者希望标题回声都写在同一页面上.

我想知道它是怎么可能的.它应该给出一些错误

标题已经发送(输出开始于......

是否真的可以将echo和header写入同一页面!

cod*_*ict 35

您可以使用输出缓冲作为

ob_start();
echo "MESSI is injured!!";
header("Location:somepage.php");
ob_end_flush();
Run Code Online (Sandbox Code Playgroud)

问题是我们在开始发送输出后无法发送标头.为了解决这个问题,我们缓冲输出.该功能ob_start打开输出缓冲.当输出缓冲处于活动状态时,不会从脚本(标头除外)发送输出,而是将输出存储在内部缓冲区中.所以echo输出将被缓冲.接下来我们发送标题没有任何问题,因为我们还没有吐出任何输出.最后,我们调用ob_end_flush刷新内部缓冲区内容并停止输出缓冲.