wordpressスマホ対応サイト・wpプラグイン・検索体験最適化・SNS・ 動画・bgmやテーマ曲を駆使して、リアルビジネスへの集客を達成するためのコラム!

   

WordPress屋のマルチメディアコンテンツ制作読んどけ☆コラム

【PHP学習】var_dumpで出力するのと、echoで出力するのは、挙動がどのように違うの?

   

こんにちは、管理人@SS_mshpです。

今回は、WordPressユーザーなのでPHPを学習してる管理人が、プログラムを作る中で気になった、素朴な疑問についてお伝えします。

文字列とか変数の内容を出すときにvar_dumpしたり、echoしたりしますが、挙動がどのように違うのか?また、配列やprint_rで出したときはどうなるのかなどをチェックしていきます。

文字列のvar_dumpと、echoの違い

こちらがお題のプログラムです。paiza,ioを使用しました。str_replaceを使って、『this is a pen』のthisをpenに置き換えるというプログラムを行ってました。phpマニュアルを参考にしたときにあった、『var_dump』をそのまま書きましたが、『echoだと挙動がどのように違うか?』が気になったので実験しました。

var_dumpで出した場合~形式やバイト数も出る


単語入れ替えをして『pen is a pen.』という文章になったのを、var_dumpで出しました。文章だけではなく『string(13)』というのも出てきました。stringは文字列形式であるということ(intだと数値形式)、(13)はバイト数です。空白、ピリオドも1バイトとしてカウントするので13になります。
var_dumpだと形式やバイト数など詳しいデータがでるので、デバッグにも向いています。

echoで出した場合~単純に処理済の文章だけ


echoした場合は『pen is a pen.』という変換済みの文章が単純に出るだけでした。

配列(Array)のvar_dumpと、echoの違い・またprint_rだとどうなるか

配列(Array)をvar_dumpした場合


配列(Array)をvar_dumpしてみたところです。形式やバイト数のほか、配列の順番みたいなのも出ましたね。

配列(Array)を単純にechoした場合~エラーになるので、ほかの書き方を


配列(Array)を単純にechoすると、エラーというかNotice が出ます。『Array to string conversion(配列が文字列に変換されてるよ!)』という意味です。PHPマニュアルで読むとわかるんですけど、echoは『文字列を出力する』機能なので、配列を直接出すようにはできていないようです。

配列にはいっている文字列を出力したい場合は、単純にechoするのではなく・・

[0]みたいに指定したり・・


文字列が全部でるけど、こういう書き方はちょっとめんどくさいんで(笑)、ループとか使いたいところです。

print_rだと、簡易的にだが情報が出力できる

指定した変数に関する情報を出力する関数・print_rを使っても、配列(Array)の中身が出てきます。こちらはvar_dumpしたときと違って、バイト数やデータ形式などは出てこない、簡易版といえそうです。また・・・

$data = array(“one”,”two”,”three”,”four”);
$data2 = print_r($data, true);
echo ($data2);
みたいに書いても、(単純にechoするとエラーになったけど)echoすることができます。実質、print_rしたものを変数$data2に格納してechoしているだけですが(笑)

あとがき・まとめ

  • var_dumpだとデータ形式やバイト数、配列なども出せる
  • echoだと、単純に文字列の出力で、配列は出ない
  • 配列をechoしたいときは、指定やprint_r組み合わせなどが必要

まとめるとこんな感じでしょうか。通常の利用はechoで十分ですが、データ形式やバイト数、配列などをあつかうことになると、ほかの関数も覚えておいたほうがよいでしょう。

*アトリエSS・web制作サービスページに移動します。webリニューアル・ロゴ・記事・wordpress化などでお力添えできます。

【カテゴリ】 - PHPプログラム・データベース学習 【タグ】 -

  関連記事