PHP,这是标题位置的最佳实践

PHP,这是标题位置的最佳实践,php,redirect,http-headers,Php,Redirect,Http Headers,我在使用PHP标题位置时感到困惑。哪种方式是最佳实践 if(true){ header("location:somepage.php"); } 或 在发送'Location:'标题后,PHP将继续解析,并且header()调用下面的所有代码仍将执行。因此,请使用第二个示例: if(true){ header("location:somepage.php"); exit; } 在发送初始头之后,头将继续被发送-因此,如果你真的,真的这么想-你可以在脚本结

我在使用
PHP
标题位置时感到困惑。哪种方式是最佳实践

if(true){
    header("location:somepage.php");
}


在发送'Location:'标题后,PHP将继续解析,并且header()调用下面的所有代码仍将执行。因此,请使用第二个示例:

if(true){
       header("location:somepage.php");
       exit;
  }

在发送初始头之后,头将继续被发送-因此,如果你真的,真的这么想-你可以在脚本结束时退出
exit

然而,问题是,在用户被重定向到另一个页面后,您可能仍然希望执行脚本-因此您实际上不想进入
退出

好代码的示例:

header("location:somepage.php");
//continue code and do stuff.
错误代码示例:

header("location:somepage.php");
// Continue code and do other stuff... then...
header("location:somepageOtherPage.php");
// This is the header that the user will get.

我肯定会选择第二种选择。否则,脚本执行不会终止。仅设置另一个标头不足以重定向。

这取决于您要执行的操作: 如果希望脚本的其余部分在更改标头后仍然运行,请使用第一个选项(不带exit())。
如果(更有可能)您不希望脚本继续,请使用第二个选项(使用exit())

我认为,如果您不使用“exit”,则脚本的其余部分将在重定向之前执行。

header()with exit()语句是一种很好的做法。如果不写exit(),它将在重定向后执行一些语句,从而导致问题。exit()将停止所有进一步的执行

header("location:somepage.php");
exit;

第二个是正确的,因为页面将自动重定向到您在标题语法中指定的页面。因此不需要退出。

即使最佳实践是正确编写标题:
header(“Location:somepage.php”)
如果PHP代码在之后立即结束,则无需退出()
see()。第二个选项可能重复:。
header("location:somepage.php");
exit;