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