我是否需要在标头后使用 exit(“位置: http://localhost/...”);?

2022-08-31 00:43:02

我正在创建一个脚本来验证表单,我问自己一个问题。当我使用标头时(请参阅下面的示例),我是否需要立即使用 exit?我的意思是,使用head是否也意味着它默认退出,因此我不需要使用命令exit?

// cancel button clicked
if (isset($_POST['cancel'])) {
  header("Location: http://localhost/admin/tracks.php");
  exit;
}

echo '<p>$name</p>'

答案 1

你应该调用,因为a不会自动停止脚本执行 - 或者如果它这样做(老实说我不是100%的),它绝对不会立即停止脚本。exit()header()

例如,请尝试以下代码:

<?php

  header("Location: http://www.google.com");
  unlink(__FILE__);

?>

这个小脚本用于将您重定向到Google,然后删除自身。如果运行它,您会注意到在重定向后,该文件仍被删除。这意味着即使呼叫重定向了您,调用仍已执行。header()unlink()header()


答案 2

我在标头>位置调用之后使用,因为我希望能够绝对依赖于脚本不会通过标头>位置调用这一事实。exit

如果某个地方存在 bug,并且脚本在标头>位置调用之前开始生成输出,则调用将失败,并且脚本执行将正常继续(除非您调用 exit)


推荐