wordpressでのスマホ対応webサイト制作・wpプラグイン・PHPプログラム・SNS活用・ 動画・bgmやテーマ曲アレンジまで考えるコラム!

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

      2020/06/21

こんにちは、管理人@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・データベースetc
【タグ】 -

  関連記事

【WordPress組み込み関数】is_home()とis_front_page()って同じ?→似てますが、厳密には挙動が異なります

今回は、WordPressで条件分岐するときによく使われる組み込 ...

【WordPressユーザー名バレ対策】ユーザー名表示からPHP・preg_matchでリダイレクト(wp-json/wp/v2/usersなど)

今回は、WPログインなどにも使われる情報『ユーザー名』が表示され ...

【PHP etc.プログラム学習サイトコードコピペ】全角引用符・バッククオートが入ってて動かない件に注意

今回は、管理人が学習サイトなどでコードを調べていて、4回くらい遭 ...

WordPressの記事IDで判定して転送~PHP・headerとget_the_IDで対応、the_IDとの挙動の違いも

今回は、前回の『別ディレクトリにWP記事を出す』の続きで、新しい ...

【WP記事取得クエリ・プラグイン無し】お知らせなどに使える、ショートコードで特定カテゴリ記事を表示プログラム

今回は、最近何件か対応した、お客さん提供用の自社開発WPテーマに ...

PHP・mb_substr関数を使って、タイトル文字数を揃える(WPレイアウト調整)

今回はPHP関数を使って、表示の調整をしてみたいと思います タイ ...

【ユーザーデータ取得】WordPress定義済み関数の『get_userdata()』『wp_get_current_user()』ってどのように違うの?

今回は、WPシステムのwebサイト制作などでちょくちょくお目にか ...