そもそもなんでvar_dumpで出力したいのって、言う人いるかもしれません。
デバッグすればいいやん、と。
でも今の開発環境に何故かデバッグツールを入れれず、確認したい変数をすべてvar_dumpという作業を繰り返しているのです。
とっても無駄だとは思うんですが、できないものは仕方ありません。
そんな無駄な作業をしている人たち向けの記事でございます。
var_dumpで出力できない状態というのは、
つまり、とあるアクションで値を保持していたが、すぐにリダイレクトし、値が飛んでしまった場面などを指します。
そもそも値を持っていない場合などは、もちろん出力できないです。
/////////////////debug////////////////////////////
ob_start();
var_dump($test);
$out = ob_get_contents();
ob_end_clean();
file_put_contents('/var/log/error_log', $out, FILE_APPEND);
/////////////////debug////////////////////////////
こちらのコードを確認したい部分に挿入してください。
ob_start()からob_end_clean()までに出力した文字が
/var/log/error_logというファイルに記載されます。
この場合、$testが出力されます。
後は、tailfするなりして確認してください。
また、
////////////////////debug///////////////////
と書いてある部分に関しては、必要ありませんが、
後でコードを削除する際に見つけやすくなるので、そのまま使用されることを推奨します。