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

更新: 2021/02/23 1738文字

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

今回は、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で十分ですが、データ形式やバイト数、配列などをあつかうことになると、ほかの関数も覚えておいたほうがよいでしょう。

WordPressサイト制作&リニューアル・機能開発サービス | アトリエSS


【カテゴリ】- PHP・データベースetc
【タグ】-

関連記事

PHP・mb_substr関数を使って、タイトル文字数を揃える(WPレイアウト調整)
WordPressの記事IDで判定して転送~PHP・headerとget_the_IDで対応、the_IDとの挙動の違いも
テスト環境(ローカル含む)でPHPサイト開発に使えるツール&XAMPPでやってみた例(設定や表示ファイルetc)
【WordPressでPHPプログラムを学習シリーズ1】用語:PHP変数・関数・定数を、WPの機能を通して覚える
【WordPress別サーバー引っ越し】SQLエクスポート/インポート&Redirectionプラグインを使った方法
【別に止めなくてOK】WordPressサイトなどに、アメブロ・fc2など無料ブログの更新情報を表示して連携する方法
【PHPファイル取得でmidiデータ配布サイト】glob関数とWordPress関数で、midiダウンロード&関連記事一覧を作成
【PHPプログラミング】ヒアドキュメント構文 (“<<<“)使ってみた例~メール確認画面&入力内容などの変数渡し
【webサイトセキュリティ対策】検索フォームへのSQL判定などがある不正な入力を、WAFで遮断する
【PHP】カウントダウン機能に使える?array_reverseで配列要素を逆に,パラメーター挙動&array_flipとの違い
【ユーザーデータ取得】WordPress定義済み関数の『get_userdata()』『wp_get_current_user()』ってどのように違うの?
【PHPプログラミング】PDOクラスを使って、WPのget_post_metaで取れないプラグイン独自テーブルを取得する