当我使用try catch块和php的http_response_code()
函数时,我遇到了问题。
当我收到错误并在一切正常时打印一条消息时,我需要回复403错误。
问题是,当进入“catch”部分时,他们不会发送403错误代码并发送200状态OK。
这是代码(取自php页面并根据我自己的需要进行修改)
<?php
function inverso($x) {
if (!$x) {
throw new Exception('Division by zero.');
}
return 1/$x;
}
try {
echo inverso(0) . "\n";
} catch (Exception $e) {
echo 'Exception!: ', $e->getMessage(), "\n";
http_response_code(403);
}
?>
此代码适用于PHP 5.5.9。但不适用于PHP 5.6.24
PHP的版本可能是问题吗?
Edit1:在“try-catch”块之外,http_response_code(403)工作正常。
Edit2:在“try-catch”块之外,headers_sent()函数返回空。在“try-catch”块中,headers_sent()函数返回“1”
希望有人能帮助我!谢谢!