在调用重定向函数头之后,我应该调用exit吗?
<?php // fileA
$urlFailToGoTo = '/formerror.php';
if (sth)
{
header(sprintf("Location: %s", $urlFailToGoTo));
exit(); //should I call exit() here? or return?
}
?>
Run Code Online (Sandbox Code Playgroud)
谢谢
rgr*_*oli 76
你绝对应该.否则,脚本执行不会终止.仅设置另一个标头不足以重定向.
Jan*_*roň 29
你应该像@rgroli解释的那样.如果您不想打扰括号,也可以调用header() IN exit():
if(sth) exit(header("Location: http://example.com"));
Run Code Online (Sandbox Code Playgroud)
HTTP/1.1中的位置标头始终需要绝对路径,请参阅此处的注释.
注意:这不是一个hack,因为退出代码仅在参数为整数时使用,而header()生成void(它以代码= 0退出,正常退出).看它exit_header()就像它应该在Location标题后的功能.
exit 是错误的编码。
如果您曾经开发过一个大项目并想要创建 PHP 单元测试用例,退出将会把您搞砸。
exit 终止脚本和您正在运行的测试!没有办法恢复测试并判断它是否失败......
以这样的方式组织代码,如果使用重定向,则没有输出并且脚本自然结束...
| 归档时间: |
|
| 查看次数: |
37049 次 |
| 最近记录: |