Битовая маска, переданная во второй параметр phase
обработчика вывода даёт информацию о вызове обработчика.
Замечание: В битовую маску разрешено включать больше одного флага, а для проверки того, установлен ли флаг, указывают побитовый оператор
&
.
Значение флага PHP_OUTPUT_HANDLER_WRITE
и его псевдонима
PHP_OUTPUT_HANDLER_CONT
равно 0
,
поэтому установлено ли оно, определяют только операторами равенства
equality operator
(==
или ===
).
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
— нет.