Битовая маска, которую передали во второй параметр
обработчика вывода — phase
даёт информацию о вызове обработчика.
Замечание: В битовую маску разрешается включать больше одного флага, а для проверки того, установлен ли флаг, указывают побитовый оператор
&
.
Значение флага PHP_OUTPUT_HANDLER_WRITE
и его псевдонима
PHP_OUTPUT_HANDLER_CONT
равно 0
,
поэтому установили ли значение, определяют только
операторами равенства
(==
или ===
).
PHP устанавливает следующие флаги на конкретном этапе жизненного цикла обработчика:
PHP_OUTPUT_HANDLER_START
—
при первом вызове обработчика.
Флаг PHP_OUTPUT_HANDLER_FINAL
или его псевдоним PHP_OUTPUT_HANDLER_END
—
при последнем вызове обработчика,
т. е. он отключается. PHP также установит этот флаг,
когда буферы выключаются процессом завершения работы PHP.
Конкретный вызов обработчика устанавливает следующие флаги:
PHP_OUTPUT_HANDLER_FLUSH
—
при запуске обработчика вызовом функции ob_flush().
Флаг PHP_OUTPUT_HANDLER_WRITE
или его псевдоним PHP_OUTPUT_HANDLER_CONT
—
когда размер содержимого обработчика равен или превышает размер буфера,
а обработчик вызвали во время автоматической очистки буфера.
Флаг PHP_OUTPUT_HANDLER_FLUSH
—
когда обработчик запустили вызовом функций ob_clean(),
ob_end_clean() или ob_get_clean().
При вызове функции ob_end_clean() или ob_get_clean()
также устанавливается флаг PHP_OUTPUT_HANDLER_FINAL
.
Замечание: При вызове функции ob_end_flush() или ob_get_flush() флаг
PHP_OUTPUT_HANDLER_FINAL
устанавливается, а флагPHP_OUTPUT_HANDLER_FLUSH
— нет.