・PHPでconsole.logは使える?
・var_dumpやprint_rでデバッグログを出力する方法は?
JavaScriptではconsole.logを使ってデバッグログを出力しますが、PHPでconsole.logを使えるのかどうか知りたい人も多いでしょう。
そこでこの記事では、PHPでJavaScriptのconsole.logを使ってデバッグログを出力する方法やvar_dump、print_rなどの使い方を解説します!
この記事を読めば、PHPでconsole.logを使う方法を理解し、デバッグログを出力できるようになるでしょう。
PHPでconsole.logを使ってデバッグログを出力したい、var_dumpやprint_rでデバッグログを出力する方法も知りたい人は、ぜひ最後までご覧ください。
PHPでconsole.logを使ってデバッグログを出力する方法
JavaScriptでは、デバッグログの出力方法としてconsole.logがよく使われますね。
console.logを使うと、Chromeのデベロッパーツールの「Console」でログが出力されるので、非常に便利です。
では、このconsole.logをPHPのようなサーバー側で使うことはできないか、と考える人もいるでしょう。
実は、JavaScriptのconsole.logはPHPでも使うことができます。
なので、ここではPHPでconsole.logを使ってデバッグログを出力する方法について解説していきます。
さっそく、コードを見ていきましょう。
1 2 3 4 5 6 7 8 9 10 |
<?php function console_log($data){ echo '<script>'; echo 'console.log('.json_encode($data).')'; echo '</script>'; } $array = array('りんご', 'バナナ', 'みかん'); console_log($array); ?> |
まず、全体のコードとしては上記の通り。
関数の引数に出力したいデータを渡し、それをechoを使ってスクリプトタグに入れています。
少しコードを分けて、詳しく解説していきます。
1 2 3 4 5 |
function console_log($data){ echo '<script>'; echo 'console.log('.json_encode($data).')'; echo '</script>'; } |
まず、関数「console_log」を作成し、引数の名前を「$data」としておきます。
関数の中は、echoを使ってスクリプトタグを出力し、その中にconsole.logを指定します。
この方法を使えば、PHPでもconsole.logを使ってデバッグログを出力することができるというわけです。
console.logの中身は、引数に渡されるデータを出力したいのですが、データをJSON形式にするために、「json_encode()」を指定します。
このjson_encodeを指定しなかった場合、データをうまく出力できなくなります。
json_eoncodeは値をJSON形式に変換してくれる関数です。
様々な言語をJSONで挟むことで、各プログラミング言語間のデータの受け渡しが簡単にできるようになります。
なので、今回はconsole.logに「json_encode($data)」というように指定しましょう。
1 2 |
$array = array('りんご', 'バナナ', 'みかん'); console_log($array); |
あとは、console.logでデバッグログを出力したいデータを関数の引数に指定します。
※ここでは、「りんご、バナナ、みかん」という値が入った配列「$array」を引数に指定しています。
結果を表示すると、次のようになるでしょう。
ChromeのデベロッパーツールでConsoleを確認すると、配列のデータが出力されていますね。
この結果から、PHPでもconsole.logを使ってデバッグログを出力できることがわかりました。
※console.logのデバッグについて、さらに詳しく知りたい人は以下の記事をご覧ください。
コンソールを使ってjavascriptのデバッグをする方法 【初心者向け】PHPでデバッグログを出力する方法
PHPでは、JavaScriptのconsole.logを使ってデバッグログを出力することができます。
ですが、PHPはvar_dumpやprint_rなどを使って、デバッグログを出力することも可能です。
なので、ここではvar_dumpやprint_rなどの使い方を解説していきます。
var_dumpを使う
var_dump関数は、引数として渡された変数の中身を詳しく表示するための関数です。
PHPでコードを書いているときに、コードの処理が正しいのかどうか検証するために使うことができます。
例えば、次のようなコードの場合。
1 2 3 4 5 |
<?php $array = array('りんご', 'バナナ', 'みかん'); var_dump($array); ?> |
「りんご、バナナ、みかん」という値が入った配列があります。
これを変数の「$array」に代入して、var_dump関数の引数に指定しましょう。
結果を表示すると、配列「$array」の中身が詳しく出力されます。
上記のように、配列の中身が詳しく表示されましたね。
この[0][1][2]というのはインデックス番号で、配列の値に0から順に番号付けされます。
そして、stringというのはデータ型の文字列を表しており、もし配列の値が数値の場合はintになります。
このように、var_dump関数を利用すれば、引数として渡された変数の中身を詳しく表示してくれます。
なので、PHPのコードを書いているときに、その処理が本当に正しいのかどうか検証することができます。
エラーの原因を見つける手段にもなるので、便利な関数です。
print_rを使う
PHPでは、デバッグログを出力するためにvar_dump関数の他に、print_r関数を使うこともできます。
print_r関数もvar_dump関数と同じように、引数として渡された変数の中身を詳しく表示するための関数です。
コードで使い方を見ていきましょう。
1 2 3 4 5 |
<?php $array = array('りんご', 'バナナ', 'みかん'); print_r($array); ?> |
先ほどと同じように、「りんご、バナナ、みかん」という値が入った配列を変数「$array」に代入します。
そして、print_r関数の引数に「$array」を指定しましょう。
結果を出力して、確認してみます。
配列の中身が上記のように詳しく表示されていますね。
ですが、var_dump関数のときと比べて表示の仕方が少し異なります。
var_dump関数では、stringなどのデータ型が表示されていましたが、print_r関数では、データ型が表示されていません。
このように、var_dumpとprint_rはデバッグログを出力するための関数ですが、出力の仕方が微妙に異なるのがわかります。
どちらを使うのが正しいか正しくないかは、特に決まりはありません。
ただ、配列の値のデータ型まで細かく確認したい場合はvar_dump関数、配列のキーや値だけを確認したい場合はprint_r、というように使い分けるといいでしょう。
【初心者向け】PHPのエラーを確認する方法!まとめ
今回は、PHPでJavaScriptのconsole.logを使ってデバッグログを出力する方法について解説しました。
PHPでconsole.logを使うには、echoでスクリプトタグを出力するのが簡単な方法です。
関数を使って引数に出力したいデータを渡し、console.logで出力すれば、PHPでもデバッグログを出力することが可能になります。
また、PHPではvar_dumpやprint_rなどを使ってデバッグログを出力することもできるので、そちらも使ってみるといいでしょう。
この記事がPHPの学習に役立つと幸いです。