可能重复:
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()
没有意义 - 我是对的吗?
答案 0 :(得分:3)
header()
函数只是向浏览器发送一个标题以及页面的其余部分,告诉浏览器重定向。如果您不希望脚本继续运行,那么您应该执行exit()
在某些情况下,您可能希望脚本继续运行 虽然也是,取决于脚本。你可能正在跟踪 页面命中或某事,你可能有代码插入到 数据库包含在每个页面的底部。如果你想跟踪它 重定向之前的命中,那么你不希望早期
exit
。
在大多数情况下,您确实需要exit
,因为在这种情况下您不希望向浏览器输出任何内容,而额外的代码只会减慢您的重定向。
答案 1 :(得分:0)
没有。我假设if ($var = true)
应该已阅读if ($var == true)
,或者只是if ($var)
header
函数将数据添加到HTTP标头。如果您在上面if
语句后面没有任何内容,那么两者都是相同的。但是如果你在代码执行的if
语句后面有代码 - 那就是你不希望发生的事情。