《PHP8上級試験対策》出力バッファリングでヘッダ操作を安全に行う方法

  • URLをコピーしました!

はじめに

PHPの出力バッファリング関数 ob_start()ob_get_clean() は、画面に直接出力されるはずの内容を一時的にバッファにためて、あとで文字列として扱える便利な関数です。
上級試験では、var_dumpなどの出力を取得するケースも出題されるので、ここでしっかり理解しておきましょう。

キーワード:/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(); の結果は 文字列 になることを覚えておく

この記事が気に入ったら
いいねしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次