直到我在php.net 上发现这篇文章,我似乎无法找到答案exit.
在发送`Location:'标题之后,PHP 将继续解析,并且仍然会执行header()调用之下的所有代码.
这有效吗?
并且为了进一步解决这个问题,如果它是有效的,它有什么好处可以省去exit(并让其余的代码运行)?
是的,这是有效的.header()函数只是向浏览器发送一个标题以及页面的其余部分,告诉浏览器重定向.如果您不希望脚本继续运行,那么您应该执行exit或die.
在某些情况下,您可能希望脚本继续运行,具体取决于脚本.您可能正在跟踪页面命中或某些内容,您可能会将代码插入到每个页面底部的数据库中.如果您希望它在重定向之前跟踪命中,那么您不希望exit提前.
您可能希望继续运行代码的另一种情况是,如果您有一个定时重定向标头,并希望向用户显示某些内容,例如.因此,他们有机会在重定向之前查看浏览器的位置.如果您将它们重定向到完全不同的网站,您可能只想这样做.Redirect to: http://xxxxxx in 5 seconds
在大多数情况下,您确实希望这样做,exit因为在这种情况下您不希望向浏览器输出任何内容,而额外的代码只会减慢您的重定向.