如果我使用$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 的整个包中找不到“默认输出处理程序”。为什么?