はじめに
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();
の結果は 文字列 になることを覚えておく