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