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」というほど頻繁に使えるので、ぜひ覚えておきましょう。
目次
そもそも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を学んで未経験からWebエンジニアを目指す方法とは
実際に書いてみよう
数値の場合
変数の内容が数値である場合の例です。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
</head>
<body>
<?php
$data = 70;
var_dump($data);
?>
</body>
</html>
画面では以下のように表示されます。
「int」は変数が整数型であることを示し、( )内にはその数値が表示されます。
文字列の場合
変数の内容が文字列である場合の例です。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
</head>
<body>
<?php
$data = "abcde";
var_dump($data);
?>
</body>
</html>
画面では以下のように表示されます。
「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によって表示させます。
画面では以下のように表示されます。
まず変数の内容がarray(配列)であることを示し、( )内には要素の数が表示されます。
次に、配列内の各キーとそれに格納されたデータの情報が表示されます。
例えば、$data[0]には文字列”one”が格納されているためstring(3)となり、さらにその文字列も表示されます。
$data[1]には整数2が格納されているため「int(2)」と表示されます。
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で表示された情報です。
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で表示された情報です。
print_rでは配列であるという情報と、各要素の値だけが表示されています。
おわりに
var_dumpではprint_rでは確認できない配列全体の要素数や各要素の型、バイト数などが表示されているのが分かります。
このようにvar_dumpは配列の中身をより詳しく確認するときに特に役立ちます。
print_rのほうが情報が少なくて、すっきりしてるとも言えますね。
そうだね。配列をちょっと展開してみたいって場合にはprint_rが良いかもね。
あと、思ったんですがvar_dumpもprint_rも少しだけ見づらいですね。
preタグで挟んであげると、かなり見やすくなるよ!
PHPを学習中の方へ
これで解説は終了です、お疲れさまでした。
- つまずかず「効率的に」学びたい
- 副業や転職後の「現場で使える」知識やスキルを身につけたい
プログラミングを学習していて、このように思ったことはありませんか?
テックアカデミーのPHP/Laravelコースでは、第一線で活躍する「プロのエンジニア」が教えているので、効率的に実践的なスキルを完全オンラインでしっかり習得できます。
合格率10%の選考を通過した、選ばれたエンジニアの手厚いサポートを受けながら、PHP/Laravelを使ったWebアプリケーション開発を学べます。
まずは一度、無料体験で学習の悩みや今後のキャリアについて話してみて、「現役エンジニアから教わること」を実感してみてください。
時間がない方、深く知ってから体験してみたい方は、今スグ見られる説明動画から先に視聴することをおすすめします!