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

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

監修してくれたメンター

井上 祐介

NEC・Microsoftの認定インストラクター。Z80アセンブラ・C++・C#・PHP・Javaなどの経験を経て業務で使用するプログラムの開発や新入社員プログラミング研修の講師を行った。

今回は初心者から上級者まで必ず覚えておきたいvar_dumpの使い方について、テックアカデミーのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。

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

var_dumpを使用すれば、変数の値を確認できるのでエラーを探すときに便利です。

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

 

目次

1時間でできる無料体験!

 

そもそもPHPについてよく分からないという方は、PHPとは何なのか解説した記事を読むとさらに理解が深まります。

 

var_dumpとは

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

値の他に、その変数の型やバイト数などの詳細な情報が表示されます。

配列にも使用できます。

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

 

大石ゆかり

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

田島悠介

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

大石ゆかり

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

田島悠介

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

 

var_dumpの書き方

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

var_dump(情報を出力する変数[, 変数2, 変数3, ・・・])

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

※[ ]はオプションで省略できます。
※もし、出力したい変数が2つ以上ある場合は、2番目以降の引数で指定できます。

 

[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)」と表示されます。

 

コラム

実は私も!?独学で損する人の特徴

「スクールは高いから独学で成功する」という気持ちの方は多いと思います。
もちろんその方が金額は低く抑えられるでしょう。
ただ 独学には向き不向きがあり、実はスクールが向いている人も大勢います。

そんな方のために参考として、 テックアカデミー卒業生がスクールを選んだ理由 をご紹介します。

  • ・困って挫折しそうなときに、質問や相談できる相手がいる環境で学んでいきたいなと思った
  • ・わかった気になっているだけだったので、自分を追い込む環境に置いた方がいいと感じた
  • ・スクールのカリキュラムで市場に求められるスキルを学ぶべきと思った

少しでも当てはまる部分があれば、 スクールが向いているかもしれません。
お試しのつもりで、まずは一度 無料相談 に参加してみませんか?

現役エンジニア・デザイナーに何でも気軽に相談できる30分すべて無料で できます。
無理な勧誘は一切ない ので、お気軽にご参加ください。

今なら相談した方限定の割引・参加特典付き! 無料相談はこちら

var_dumpとprint_rの違い

var_dumpによく似た関数でprint_rがあります。

print_rは変数の値を分かりやすく表示してくれる関数です。

print_rの書式は以下の通りです。

print_r(出力したい変数[, 結果を文字列として取得するか]);

※[ ]はオプションで省略できます。

1つ目の引数で出力したい変数(配列も可)を指定し、2つ目の引数でtrueを渡せば出力結果を文字で取得できます。

var_dumpもprint_rも変数の値を表示できる機能は同じです。

違いは、print_rは変数の値の表示さえできればよいのに対し、var_dumpには開発者向け変数の型文字列のバイト数などデバッグに役立つ詳細な情報が含まれます。

var_dumpと違うところをまとめたものが以下の表です。

print_r var_dump
一度に出力できる変数 1つ 複数でも可能
変数の型の出力 できない できる
出力結果の取得 可能(2つ目の引数にtrueを指定) できない
出力結果の例

array(“山田”, “佐藤”)
※<pre>タグによる出力
Array
(
    [0] => 山田
    [1] => 佐藤
)
array(2) {
  [0]=>
  string(6) "山田"
  [1]=>
  string(6) "佐藤"
}

 

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>

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

php_vd_3

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>

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

php_vd_3

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

 

おわりに

var_dumpではprint_rでは確認できない配列全体の要素数や各要素の型、バイト数などが表示されているのが分かります。

このようにvar_dumpは配列の中身をより詳しく確認するときに特に役立ちます。

 

大石ゆかり

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

田島悠介

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

大石ゆかり

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

田島悠介

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

 

1時間でできる無料体験!

PHPを学習中の方へ

これで解説は終了です、お疲れさまでした。

  • つまずかず「効率的に」学びたい
  • 副業や転職後の「現場で使える」知識やスキルを身につけたい

プログラミングを学習していて、このように思ったことはありませんか?

テックアカデミーのPHP/Laravelコースでは、第一線で活躍する「プロのエンジニア」が教えているので、効率的に実践的なスキルを完全オンラインでしっかり習得できます。

合格率10%の選考を通過した、選ばれたエンジニアの手厚いサポートを受けながら、PHP/Laravelを使ったWebアプリケーション開発を学べます。

まずは一度、無料体験で学習の悩みや今後のキャリアについて話してみて、「現役エンジニアから教わること」を実感してみてください。

時間がない方、深く知ってから体験してみたい方は、今スグ見られる説明動画から先に視聴することをおすすめします!

初心者・未経験でもできる。まずはテックアカデミーに相談しよう

プログラミングを独学していて、このように感じた経験はないでしょうか?

  • ・調べてもほしい情報が見つからない
  • ・独学のスキルが実際の業務で通用するのか不安
  • ・目標への学習プランがわからず、迷子になりそう

テックアカデミーでは、このような 学習に不安を抱えている方へ、現役エンジニア講師とマンツーマンで相談できる機会を無料で提供 しています。
30分間、オンラインでどんなことでも質問し放題です。

「受けてよかった」と感じていただけるよう 厳しい試験を通過した講師 があなたの相談に真摯に向き合います。

「ただ気になることを相談したい」
「漠然としているがプロの話を聞いてみたい」

こんな気持ちでも大丈夫です。

無理な勧誘は一切ありません ので、まずはお気軽にご参加ください。
※体験用のカリキュラムも無料で配布いたします。(1週間限定)

今なら参加者限定の割引特典付き! 無料相談を予約する