PHP Conference Nagoya 2025

出力ハンドラに渡されるフラグ

出力ハンドラの2つめの phase パラメータに渡されるビットマスクは、 ハンドラの起動に関する情報を提供します。

注意: ビットマスクは複数のフラグを含むことができるので、 フラグがセットされているかどうかをチェックするには、 ビット演算子 & を使う必要があります。

警告

PHP_OUTPUT_HANDLER_WRITE と、そのエイリアス PHP_OUTPUT_HANDLER_CONT の値は 0 です。 よって、これらの値が設定されているかを調べられるのは 比較演算子 (== or ===) だけです。

ハンドラのライフサイクルの特定のフェーズで、以下のフラグが設定されます: PHP_OUTPUT_HANDLER_START は、ハンドラが初めて起動されたときに設定されます。 PHP_OUTPUT_HANDLER_FINAL やそのエイリアス PHP_OUTPUT_HANDLER_END はハンドラが最後に起動されるとき、 つまりハンドラがオフになるときに設定されます。 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 は設定されません。

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top