在发送任何输出之前是否需要调用http_response_code?

时间:2017-10-10 15:58:40

标签: php

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

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

如果没有,为什么header会以这种方式工作,而不是http_response_code

1 个答案:

答案 0 :(得分:0)

对这个函数的PHP手册的评论之一总结得很好:

  

http_response_code基本上是编写http的简写方式   状态标题,增加了奖金,PHP将合适   通过将您的响应代码与其中一个匹配来提供的原因短语   它所维护的枚举中的值   PHP-SRC /主/ http_status_codes.h。请注意,这意味着您的回复   代码必须与PHP知道的响应代码相匹配。你无法创造   你自己的响应代码使用这种方法,但你可以使用   标题方法。

     

总结 - “http_response_code”和“标题”之间的区别   用于设置响应代码:

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

  2.   
  3. 由于上面的第1点,如果您使用http_response_code,则必须设置PHP知道的代码。您无法设置自己的自定义代码,   但是,如果您使用,则可以设置自定义代码(和原因短语)   标题方法。

  4.