2017-10-10 54 views
-2

http_response_code函数似乎应该像header一样工作,因为它需要在发送任何输出之前调用。但是,PHP手册没有提到这一点。它是以这种方式工作吗?例如,下列程序是否会产生错误?是否需要在发送任何输出之前调用http_response_code?

<!DOCTYPE html> 
<html> 
<?php 
http_response_code(404); 
?> 
</html> 

如果没有,为什么header的工作,而非http_response_code

+3

“下列程序是否会产生错误?” =>为什么你不放弃它? –

+0

@JulienLachal但这并不是所有程序员都能看到的!另外,我没有执行PHP的快速方法。 – RamenChef

+0

听起来对我来说,你并没有真正想办法去做,请参阅http://sandbox.onlinephpfunctions.com/ –

回答

0

一个用于此功能在PHP手册的意见概括起来很好:

http_response_code基本上是写一个HTTP 状态首部,与额外的奖励,PHP将制定出一个的简写方式合适的 通过将您的响应代码与 值之一进行匹配来提供的原因短语,其值在 php-src/main/http_status_codes.h中保持不变。请注意,这意味着您的响应 代码必须匹配PHP知道的响应代码。您无法使用此方法创建自己的响应代码,但可以使用 标题方法。

总之 - “http_response_code”和用于设置响应代码“报头” 之间的差异:

  1. 使用http_response_code将导致PHP匹配并从原因短语是列表应用原因短语硬编码到PHP 源代码中。

  2. 由于上面的第1点,如果您使用http_response_code,您必须设置PHP知道的代码。您不能设置自己的自定义代码, 但是如果您使用 标头方法,则可以设置自定义代码(和Reason Phrase)。

相关问题