【PHP8.x】ob_implicit_flush関数の使い方

作成日: 更新日:

ob_implicit_flush関数は、出力制御における暗黙的なフラッシュ機能を有効または無効に設定する関数です。PHPは通常、echo文などで生成された出力をすぐにブラウザへ送信せず、サーバー内の「出力バッファ」と呼ばれる領域に一時的に溜め込みます。そして、スクリプトの実行が終了した時点などでまとめて送信します。この仕組みを出力バッファリングと呼びます。この関数で暗黙的フラッシュを有効にすると、echoprintなどの出力命令が実行されるたびに、PHPが自動的にバッファの内容をクライアントへ送信(フラッシュ)しようと試みます。これにより、時間のかかる処理の進捗状況をリアルタイムでブラウザに表示する、といったことが可能になります。引数にtrueを渡すと有効になり、falseを渡すと無効になります。デフォルトでは無効です。また、引数を指定せずに関数を呼び出すと、現在の設定状態(有効なら1、無効なら0)を取得できます。ただし、Webサーバーやブラウザ自身のバッファリング機能により、この設定だけでは意図通りに即時表示されない場合もあります。

基本的な使い方

構文(syntax)

<?php

// 構文: ob_implicit_flush(?bool $enable = null): bool

// 暗黙的なフラッシュを有効にします。
// 戻り値は、呼び出し前の設定値 (通常は false) です。
$previous_status_before_enable = ob_implicit_flush(true);

// 暗黙的なフラッシュを無効にします。
// 戻り値は、呼び出し前の設定値 (この場合は true) です。
$previous_status_before_disable = ob_implicit_flush(false);

// 引数を指定しない場合、現在の設定値を取得します。
$current_status = ob_implicit_flush();

?>

引数(parameters)

?bool $enable = null

  • ?bool $enable = null: 出力バッファリングの暗黙的なフラッシュを有効にするか無効にするかを指定します。true を指定すると有効になり、false を指定すると無効になります。null の場合は現在の設定が変更されません。

戻り値(return)

void

ob_implicit_flushは、暗黙的なフラッシュを無効にする関数です。戻り値はありません。

【PHP8.x】ob_implicit_flush関数の使い方 | いっしー@Webエンジニア