PHPでは無理!?PHPでコンソールにログ出力する方法〜console.log()〜
コンソールログの出力は、
開発者にとって値を確認したり、途中の変数の内容を確認して処理がうまくいっているかを確認するなど至る所で用いるものです。
しかし、PHPではこの「コンソールログ」を出力する関数というものがサポートされていません。
今回はPHP内で使用している値をコンソールログに出力して内容を確認する方法を紹介したいと思います。
目次(クリックで読みたい部分にジャンプできます)
PHPで普通にechoしても見づらい
PHPで値を出力しようとすると、
よく使われるのが、「var_dump」です。
var_dumpによる出力は画面に出力しますので、以下のように他のHTML要素と値が被ってしまいます。
また、var_dumpによる出力はデータが羅列するため、どうにも見づらく変数の中の値をどうにも読み取りづらいことがあります。
では、こんな時どうすればHTML要素と被らず、より見やすく変数の中身を確認することができるでしょうか。。
【解決法】よりわかりやすくコンソールログ出力する
解決法としては、「コンソール」に「ログ出力」することです。
コンソールとは
適当なweb画面で、開発者用のソースなどを見れる画面にあります。
右クリック→検証 or 開発者モードで開く
すると、右側にコードが出てきますので、その中の「Console」という項目を選びます。
そのためには、PHPの中にJavaScriptを記述するコードを書きます。
<?php
// 確認したい変数を格納
$search_item = ["ブドウ","バナナ","みかん"];
// 取得したデータをコンソールに出力
echo '<script>';
echo 'console.log(' . json_encode($search_item, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE) . ');';
echo '</script>';
?>
echoの部分がログ出力を出力を指示している部分ですので、この部分の変数を書き加えるなどして、変えてあげましょう。
これにより、以下のように先ほどのコンソールにログ出力されるようになります。
より見やすくする工夫
コンソールに出力することで、
HTML要素とは被らなくなり単純な見やすさは向上しました。
また、データを羅列しているだけだとやはりわかりづらいので、少しく工夫をしています。
「JSON_PRETTY_PRINT」と「JSON_UNESCAPED_UNICODE」を使用しています。
この2つを指定することで以下の改善点があります。
- 視認性が高く、人間が読みやすい形式で出力されるため、デバックが容易
- 日本語などの非ASCII文字がそのまま表示されるため、内容が直感的に理解しやすい
もし、このオプションを使用しないと、
コンパクトなJSON文字列になるものの、視認性が低くなります。
また非ASCII文字がエスケープシーケンスされるため、内容の理解が難しくなります。
配列型や連想配列の中身を確認したいときに活躍しますので、ぜひ使ってみてくださいね。l
まとめ
今回は、PHPでコンソールログに出力する方法について紹介しました。
PHPでもコンソールを使えると変数の値を少し確認するのに役立ち、開発効率も上がるはずです。
ぜひ試してみてくださいね。