2

可能重复:
php - 我应该在调用 Location: header 后调用 exit() 吗?

我不知道如何命名这个问题,但它就在这里。

下面的两个代码片段有什么区别:

script1 - 没有exit()

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

script2 - 与exit()

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

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

4

2 回答 2

3

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

在某些情况下,您也可能希望脚本继续运行,具体取决于脚本。您可能正在跟踪页面点击或其他内容,并且您可能将代码插入到每个页面底部包含的数据库中。如果您希望它在重定向之前跟踪命中,那么您不会想exit早点。

在大多数情况下,您确实想要这样做,exit因为在这种情况下您可能不想向浏览器输出任何内容,并且额外的代码只会减慢您的重定向速度。

于 2012-12-02T07:16:54.083 回答
0

不,我假设if ($var = true)应该阅读if ($var == true)甚至只是if ($var)

header函数将数据添加到 HTTP 标头。如果在上面的陈述之后你什么都没有if,那么两者都是一样的。但是,如果您在if语句之后有代码,该代码将被执行——这是您不希望发生的事情。

于 2012-12-02T07:16:23.553 回答