exit()和header函数之间有什么区别?

时间:2012-12-02 07:12:43

标签: php

  

可能重复:
  php - Should I call exit() after calling Location: header?

我不知道如何标题这个问题,但现在就这样了。

以下两个代码段之间有什么区别:

script1 - 没有exit()

if($var = true){
header('Location: anotherpage.php');
}

script2 - exit()

if($var = true){
header('Location: anotherpage.php');
exit();
}

根据我的理解,header()退出当前页面,如果条件为真则跳转到另一个页面,因此在exit()之后header()没有意义 - 我是对的吗?

2 个答案:

答案 0 :(得分:3)

header()函数只是向浏览器发送一个标题以及页面的其余部分,告诉浏览器重定向。如果您不希望脚本继续运行,那么您应该执行exit()

  

在某些情况下,您可能希望脚本继续运行   虽然也是,取决于脚本。你可能正在跟踪   页面命中或某事,你可能有代码插入到   数据库包含在每个页面的底部。如果你想跟踪它   重定向之前的命中,那么你不希望早期exit

在大多数情况下,您确实需要exit,因为在这种情况下您不希望向浏览器输出任何内容,而额外的代码只会减慢您的重定向。

答案 1 :(得分:0)

没有。我假设if ($var = true)应该已阅读if ($var == true),或者只是if ($var)

header函数将数据添加到HTTP标头。如果您在上面if语句后面没有任何内容,那么两者都是相同的。但是如果你在代码执行的if语句后面有代码 - 那就是你不希望发生的事情。