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);