TRUEを渡すと出力はしないで、string返してくれる。
そんだけです。
そんだけなんだけど、一応どんな感じで使ったかも書いとくと、配列のログ出力が簡潔になった。
出力バッファリングを有効にしてやって、バッファリング内容を表示ってやってたので。
<?php
$arr = array('a'=>'hoge', 'b'=>'fuga');
ob_start();
echo "var_dump: ";
var_dump($arr);
error_log(ob_get_contents());
ob_end_clean();
error_log("print_r: " . print_r($arr, true));
上のvar_dump(別にprint_rでもい)の出力が今までやってた方法で、下が今回覚えたprint_rの第二引数使ったもの。4行が1行に!! 簡潔にかけて便利じゃ。下記注意があるので、内部的には同じようなことをやってるんだろうけど。
注意:
return パラメータを使う場合、この関数は内部的に出力バッファリングを使います。そのため、ob_start() コールバック関数の中では使えません。
で、ログはこんな感じに出力されると。sedで改行コードを改行に置換してやると見やすいね。
$ tail -f /var/log/apache2/error.log | sed 's/\\n/\
/g'
[Sat Jul 30 14:38:02 2011] [error] [client 127.0.0.1] var_dump: array(2) {
["a"]=>
string(4) "hoge"
["b"]=>
string(4) "fuga"
}
[Sat Jul 30 14:38:02 2011] [error] [client 127.0.0.1] print_r: Array
(
[a] => hoge
[b] => fuga
)