php - 我应该在调用位置:标头后调用 exit() 吗?

php
2022-08-30 08:07:33

调用重定向函数标头后,是否应调用 exit?

<?php // fileA
$urlFailToGoTo = '/formerror.php';

if (sth)
{
   header(sprintf("Location: %s", $urlFailToGoTo));
   exit(); //should I call exit() here? or return?
}

?>

谢谢


答案 1

你绝对应该。否则,脚本执行不会终止。仅设置另一个标头不足以重定向。


答案 2

你应该,就像@rgroli解释的那样。如果您不想打扰括号,也可以调用INheader()exit()

if(sth) exit(header("Location: http://example.com"));

HTTP/1.1 中的位置标头始终需要绝对路径,请参阅此处的注释

注意:这不是一个黑客,因为退出代码仅在参数为整数时使用,同时产生void(它以code = 0退出,正常退出)。将其视为函数,就像它应该在标头之后一样。header()exit_header()Location


推荐