PHP var_dump()を変数に格納とprint_r()とvar_export()

var_dump()は実行すると即出力されるので、いったん変数に格納したい(あとでログに保存させたりしたい)

作成日:2018-02-27, 更新日:2018-03-16

基本

変数の中身を出力する関数はいくつかあるが、基本、実行時に即出力。

画面などに出力するには問題ないけど、ログ保存には使えない。
使えないから使えるように一旦、別の変数に保存する。
※「変数に保存」というより(PDFはファイルに出力って言うから)「変数に出力」ってのが正しいような気がする。

▼「var_dump()」と似たような関数
・var_dump() - 変数の型:分かる。bool値は「true / false」として出力。
・print_r() - 変数の型:分からない。bool値の出力が困る(「true」は「1」、「false」は「0」ではなく「空白」になる)
・var_export() - 変数の型が分からない「var_dump()」みたいな感じ。

▼以下のサンプルで使う値。

$ary = array(
  'num'  => 0,
  'bool' => false,
  'str'  => '0',
  'nil'  => null,
);

var_dump()

▼「var_dump($ary);」の結果

array(3) {
  ["num"]=>
  int(0)
  ["bool"]=>
  bool(false)
  ["str"]=>
  string(1) "0"
  ["nil"]=>
  NULL
}

変数に保存(変数に出力)

「var_dump()」は一発で変数に格納せることが出来ない。

function outputVarDump($val) {
   ob_start();
   
   var_dump($val);
   
   $buff = ob_get_contents();
   ob_end_clean();
   
   return $v;
}

$output = outputVarDump($ary)

print_r()

▼「print_r($ary);」の結果

Array
(
    [num] => 0
    [bool] => 
    [str] => 0
    [nil] => 
)

変数に保存(変数に出力)

第3引数を指定するだけでOK。

$output = print_r($ary, true);

var_export()

▼「var_export($ary);」の結果

array (
  'num' => 0,
  'bool' => false,
  'str' => '0',
  'nil' => NULL,
)

変数に保存(変数に出力)

第3引数を指定するだけでOK。

$output = var_export($ary, true);