2018-10-31 18:57:07 2853次浏览 2条回答 0 悬赏 10 金钱

运行相同的程序,一台机器不报错,一台机器会在页面底部报错,难道是环境问题?

Fatal error: Uncaught exception 'yii\web\HeadersAlreadySentException' with message 'Headers already sent in F:\ws\2018\Yii2\src\vendor\yiisoft\yii2\web\Response.php on line 414.' in F:\ws\2018\Yii2\src\vendor\yiisoft\yii2\web\Response.php on line 366

最佳答案

  • 刘师傅 发布于 2018-11-01 09:30 举报

    这个问题已经有人问过了,你翻一下问答记录就行了。我在里面说得很清楚,是版本升级问题!

  • 回答于 2018-10-31 21:31 举报

    yii\web\Response 方法中

    protected function sendHeaders()
    {
        if (headers_sent($file, $line)) {
            return; //此处返回
            throw new HeadersAlreadySentException($file, $line);
        }
        if ($this->_headers) {
            foreach ($this->getHeaders() as $name => $values) {
                $name = str_replace(' ', '-', ucwords(str_replace('-', ' ', $name)));
                // set replace for first occurrence of header but false afterwards to allow multiple
                $replace = true;
                foreach ($values as $value) {
                    header("$name: $value", $replace);
                    $replace = false;
                }
            }
        }
        $statusCode = $this->getStatusCode();
        header("HTTP/{$this->version} {$statusCode} {$this->statusText}");
        $this->sendCookies();
    }
    
    1 条回复
    回复于 2018-11-01 16:06 回复

    尝试了 exit;return;
    前者没有报错,后者会报 syntax error, unexpected ')'

    觉得很赞
您需要登录后才可以回答。登录 | 立即注册
ymdq3
助理

ymdq3

注册时间:2018-03-30
最后登录:2018-11-08
在线时长:8小时50分
  • 粉丝0
  • 金钱40
  • 威望0
  • 积分120

热门问题