【PHP】var_dumpで出力できない場合の対処法

 

そもそもなんで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///////////////////

と書いてある部分に関しては、必要ありませんが、

後でコードを削除する際に見つけやすくなるので、そのまま使用されることを推奨します。

 

コメントを残す

CAPTCHA