Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用exit()和header()作为一行程序重定向_Php - Fatal编程技术网

Php 使用exit()和header()作为一行程序重定向

Php 使用exit()和header()作为一行程序重定向,php,Php,我的问题是将以下内容写成一行: header('Location: www.somesite.com'); exit(0); PHP文档说您还可以编写exit('somestring')并将输出该字符串。我认为header()函数只是创建了一些原始HTTP头,这应该是一个文本字符串,对吗?因此,上述两条线的等效值可以是: exit(header('Location: www.somesite.com')); 我对它进行了一点测试,它可以正常工作(即正确退出并重定向..还没有看到任何申能尼根正

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

header('Location: www.somesite.com');
exit(0);
PHP文档说您还可以编写
exit('somestring')并将输出该字符串。我认为
header()
函数只是创建了一些原始HTTP头,这应该是一个文本字符串,对吗?因此,上述两条线的等效值可以是:

exit(header('Location: www.somesite.com'));
我对它进行了一点测试,它可以正常工作(即正确退出并重定向..还没有看到任何申能尼根正在进行)

但是,我在google上找不到关于这方面的任何信息,而且我也不能100%确定
头()
是否创建了
exit()
函数所期望的实际字符串


那么这是一个很酷的把戏还是错误地使用了PHP函数?如果是错误的,原因是什么?header()不向exit()函数返回任何内容-它发送原始http头,返回类型为void。exit()函数不需要强制参数,所以是的,我认为您所做的是可行的:)

即使您可以做到这一点,但两行代码更具可读性和简洁性

header('Location: www.somesite.com');
exit(0);
如果你想要一行,你可以做一个函数

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

header()
不返回值。您可以简单地执行
header(…);退出()。但可读性也是一个重要因素。可读性比你可爱的一行字更重要。编写代码的时间越长,您就越意识到“聪明”是敌人。在你的代码中始终要尽可能明确。“调试的难度是编写代码的两倍。因此,如果你尽可能巧妙地编写代码,那么根据定义,你就没有足够的智慧来调试它。”(c)Brian KernighanI怀疑,我可能错了,但我怀疑你在谷歌上找不到任何东西,因为这是微不足道的——没有人谈论它,因为它不是很重要。例如,在
if
中,尝试查找一篇关于是否可以将
print
用作条件的文章(提示:可以)。当你发现答案时,你也会发现它几乎不值得一篇博文。那么这意味着exit()不会被调用?这不是很糟糕吗?啊,是的,我读了《用于发送原始HTTP头》,认为它会返回一些东西。但ye
void
当然不会返回任何东西。Thanks@AyeshK
重定向
不能保证脚本在该时刻停止。它只发送一个原始http头。因此,
exit
仍然会被调用。是的,调用一个函数使其在其他地方成为一行程序可能是提高可读性的最佳方法。但是,当我在谷歌上找不到关于退出/标题组合的任何信息时,它的一行代码真的吸引了我。所以我必须知道