3

如果我使用$response->send(),则执行此代码:

public static function closeOutputBuffers($targetLevel, $flush)
    {
        $status = ob_get_status(true);
        $level = count($status);
        // PHP_OUTPUT_HANDLER_* are not defined on HHVM 3.3
        $flags = defined('PHP_OUTPUT_HANDLER_REMOVABLE') ? PHP_OUTPUT_HANDLER_REMOVABLE | ($flush ? PHP_OUTPUT_HANDLER_FLUSHABLE : PHP_OUTPUT_HANDLER_CLEANABLE) : -1;

        while ($level-- > $targetLevel && ($s = $status[$level]) && (!isset($s['del']) ? !isset($s['flags']) || ($s['flags'] & $flags) === $flags : $s['del'])) {
            if ($flush) {
                ob_end_flush();
            } else {
                ob_end_clean();
            }
        }
    }

但是全班都没有ob_start……

向 ob 添加内容并通过 ob_end_flush 显示的另一种方法是什么?

它在这段代码中是如何工作的?

在变量$status是:

array (size=1)
  0 => 
    array (size=7)
      'name' => string 'default output handler' (length=22)
      'type' => int 0
      'flags' => int 112
      'level' => int 0
      'chunk_size' => int 4096
      'buffer_size' => int 8192
      'buffer_used' => int 8

但是我在 http-foundation 的整个包中找不到“默认输出处理程序”。为什么?

4

0 回答 0