http_response_code在PHP中的try-catch块内不起作用

时间:2016-08-24 15:39:52

标签: php try-catch

当我使用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”

希望有人能帮助我!谢谢!

0 个答案:

没有答案