使用exit()和header()重定向为一行

时间:2012-08-08 02:05:04

标签: php

我的问题是将以下内容写成一行:

header('Location: www.somesite.com');
exit(0);

PHP文档说您也可以编写exit('some string');并输出该字符串。我认为header()函数只是创建一些原始的HTTP标头,这应该是一串文本吗?所以上述两行的等价物可以是:

exit(header('Location: www.somesite.com'));

我测试了一下它的工作原理(即退出正确并重定向..还没有看到任何shennenigans正在进行)。

但是,我在google上找不到任何关于此内容的信息,我并非100%确定header()创建了exit()函数所需的实际字符串。

这是一个很酷的技巧或错误使用PHP函数,如果错误,为什么?

2 个答案:

答案 0 :(得分:2)

header()不会向exit()函数返回任何内容 - 它会发送原始的http标头并返回类型为void。 exit()函数不需要强制参数,所以我认为你的工作会起作用:)

答案 1 :(得分:1)

即使您可以这样做,但两行代码更易读和干净。

header('Location: www.somesite.com');
exit(0);

如果你想要一行,你可以创建一个函数。

function redirect($url) {
    header("Location: $url");
    exit(0);
}