PHPのvar_dumpで変数や配列の内容を出力する方法【初心者向け】

プログラミング初心者向けにPHPのvar_dumpで変数の中身や配列の内容を出力する方法について解説しています。var_dump関数を使うことで、どこでエラーが起きているのかすぐに確認することができます。ぜひ覚えておきましょう。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

今回は初心者から上級者まで必ず覚えておきたいvar_dumpの使い方を解説しています。

HTML/CSSやJavaScriptでは、ブラウザ上でエラー部分が分かりますが、PHPはサーバーサイド言語なので、どこでエラーが起きているのか中々確認しにくいです。

「エラーが起きたらvar_dump」というほど頻繁に使えるので、ぜひ覚えておきましょう。

そもそもPHPが何か分からない場合は、先にPHPとはの記事をご覧ください。

 

なお本記事は、TechAcademyのPHPオンライン講座の内容をもとにしています。

 

var_dumpとは

var_dumpは変数の情報を表示する関数です。

値の他にその変数の型やバイト数などの詳細な情報が表示されます。配列にも使用することができます。

PHPを始めたばかりの人は、エラーが起きても何が間違っているのか気付きにくいと思うので、var_dumpを使ってエラーの箇所を探してみてください。

 

大石ゆかり

田島メンター!配列の中身がどうなっているか、一度に調べる方法はありますか?

田島悠介

配列やオブジェクトの値がどうなっているのか調べる関数として、var_dumpがあるね。(print_rも)

大石ゆかり

配列がどうなっているのか、忘れてしまうこともあるので便利ですね。

田島悠介

間違いがないかどうかの確認にも使われるんだよ。実際に書いてみよう!

 

var_dumpの書き方

var_dumpは以下のように記述します。

var_dump(情報を出力する変数)

( )内には情報を表示したい変数を入力します。

 

[PR] PHPのプログラミングで挫折しない学習方法を動画で公開中

実際に書いてみよう

数値の場合

変数の内容が数値である場合の例です。

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
  </head>
  <body>
    <?php
      $data = 70;
      var_dump($data);
    ?>
  </body>
</html>

画面では以下のように表示されます。

php_vd_1

「int」は変数が整数型であることを示し、( )内にはその数値が表示されます。

 

文字列の場合

変数の内容が文字列である場合の例です。

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
  </head>
  <body>
    <?php
      $data = "abcde";
      var_dump($data);
    ?>
  </body>
</html>

画面では以下のように表示されます。

php_vd_2

「string」は変数が文字列であることを示し、( )内にはそのバイト数が表示されます。ここでは半角の英数字が5つ格納されているため「5」となります。

 

配列の場合

変数の中身が配列である場合(配列変数)の例です。

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
  </head>
  <body>
    <?php
      $data = array("one",2,3,"four");
      var_dump($data);
    ?>
  </body>
</html>

ここでは整数型と文字列の両方の値が格納された配列を用意し、その情報をvar_dumpによって表示させます。

画面では以下のように表示されます。

php_vd_3_1

まず変数の内容がarray(配列)であることを示し、( )内には要素の数が表示されます。
次に配列内の各キーとそれに格納されたデータの情報が表示されます。

例えば$data[0]には文字列”one”が格納されているためstring(3)となり、更にその文字列も表示されます。
$data[1]には整数2が格納されているため「int(2)」と表示されます。

 

print_rとの違い

更に同じ配列の情報をprint_rで同時に表示させた場合の例です。

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
  </head>
  <body>
    <?php
      $data = array("one",2,3,"four");
      var_dump($data);
      echo "<br />";
      print_r ($data);
    ?>
  </body>
</html>

一行目がvar_dumpによる情報、二行目がprint_rで表示された情報です。

php_vd_3

print_rでは配列であるという情報と、各要素の値だけが表示されています。

 

おわりに

var_dumpではprint_rでは確認できない配列全体の要素数や各要素の型、バイト数などが表示されているのが分かります。このようにvar_dumpは配列の中身をより詳しく確認するときに特に役立ちます。

PHPをさらに勉強したい場合は、PHPで構文チェックを行う方法PHPとHTMLをまとめてコメントアウトする方法についても合わせて読んでみてください。

大石ゆかり

print_rのほうが情報が少なくて、すっきりしてるとも言えますね。

田島悠介

そうだね。配列をちょっと展開してみたいって場合にはprint_rが良いかもね。

大石ゆかり

後、思ったんですがvar_dumpもprint_rも少しだけ見づらいですね。

田島悠介

preタグで挟んであげると、かなり見やすくなるよ!

 

また、PHPを勉強していて、

  • もっと効率的に勉強したい
  • 誰かに聞きながら学びたい
  • 自分でWebサービスを作りたい

と思ったことはないでしょうか。

 

そんな方のために、TechAcademyではオンラインブートキャンプPHP/Laravelコースを提供しています。

現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間でオリジナルWebサービスを開発することが可能です。

独学に限界を感じている場合はご検討ください。