可能的重复项:
php - 我应该在调用 Location: header之后调用 exit() 吗?
我不知道如何为这个问题命名,但它就在这里。
以下两个代码片段有什么区别:
脚本 1 - 不带exit()
:
if($var = true){
header('Location: anotherpage.php');
}
脚本 2 - 带exit()
:
if($var = true){
header('Location: anotherpage.php');
exit();
}
据我了解,如果条件为真,header()
退出当前页面并跳转到另一页,因此在header()
之后exit()
毫无意义 - 我说得对吗?
header()
函数只是将一个标头与页面的其余部分一起发送到浏览器,告诉浏览器重定向。如果您不希望脚本继续运行,则应执行exit()
在某些情况下,您可能希望脚本继续运行 虽然也是如此,取决于脚本。您可能正在跟踪 页面点击或其他内容,您可能有代码将其插入到 数据库包含在每页的底部。如果您希望它跟踪 重定向之前的命中,那么您不想早
exit
。
在大多数情况下,您确实想要exit
,因为在这种情况下您不太可能希望向浏览器输出任何内容,并且额外的代码只会减慢您的重定向速度。
No.我假设if ($var = true)
应该读if ($var == true)
,甚至只是if ($var)
header
函数将数据添加到 HTTP 标头。如果您在上面的if
语句之后没有任何内容,那么两者都是相同的。但是,如果您在 if
语句之后有代码,则将执行代码 - 这是您不希望发生的事情。