はじめに
PHPの出力バッファリング関数 ob_start() と ob_get_clean() は、画面に直接出力されるはずの内容を一時的にバッファにためて、あとで文字列として扱える便利な関数です。
上級試験では、var_dumpなどの出力を取得するケースも出題されるので、ここでしっかり理解しておきましょう。
目次
出力バッファリングの基本
<?php
declare(strict_types=1);
error_reporting(-1);
ob_start(); // 出力バッファを開始
var_dump(111); // 本来は画面出力されるが、バッファに保存される
$dump = ob_get_clean(); // バッファの内容を取得して終了
var_dump($dump); // 取得した内容を確認実行結果
string(9) "int(111)"var_dump(111)の出力は"int(111)\n"として文字列化されるob_get_clean()により、バッファの内容が取得されると同時に、バッファは終了する$dumpは文字列なので、var_dump($dump)の結果はstring(9)となる
ポイント
ob_start()で出力をバッファにためるob_get_clean()でバッファ内容を取得&バッファ終了- var_dump などの出力も文字列として取得可能
まとめ
- 出力バッファを使うと、画面出力される内容を文字列として扱える
- 上級試験では、出力バッファと var_dump の組み合わせを問う問題がある
$dump = ob_get_clean();の結果は 文字列 になることを覚えておく
