在PHP <5.4是否有任何方法可以获得您刚刚设置的状态响应代码?

Ray*_*Ray 6 php apache

我知道在php 5.4中有一个新功能http_response_code(),但在以前的版本中,你如何得到你刚刚设置的响应代码?

类似于有没有办法从PHP获取当前的HTTP响应代码?

我有这个需要:

 //sometime earlier
 header('HTTP/1.1 404 Not Found');


//sometime later, detect if error was set
$status = some_magic_way_to_find_status();
Run Code Online (Sandbox Code Playgroud)

有人在php 5.3或更低版本中有这样做吗?

SDC*_*SDC 1

我认为这是不可能的。

您可以包装该header()函数:

function my_status_header($setHeader=null) {
    static $theHeader=null;
    //if we already set it, then return what we set before (can't set it twice anyway)
    if($theHeader) {return $theHeader;}
    $theHeader = $setHeader;
    header('HTTP/1.1 '.$setHeader);
    return $setHeader;
}
Run Code Online (Sandbox Code Playgroud)

或者,当然,您可以随时升级到 PHP5.4。