icon
icon

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

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

今回は初心者から上級者まで必ず覚えておきたい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分か60分お好きな時間が選べて、かつ3回まで すべて無料で ご利用できます。
無理な勧誘は一切ない ので、お気軽にご参加ください。

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

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週間限定)

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