PHPにラムダ式が入ったのは結構前ですが、これでvar_dump
なんかが少し楽になるので紹介。
function capture($func) {
ob_start();
$func();
$ret = ob_get_contents();
ob_end_clean();
return $ret;
}
// var_dump の戻り値が取れる
$debug_info = capture(function() { var_dump($my_obj); });
// 実行したスクリプトの標準出力結果が取れる
$command_out = capture(function() { system("ls -al"); });
あってよかったラムダ式。
あとはもう少し構文が短ければよかったのに