PHPのvar_dumpという関数について、現役プログラマーが解説【初心者必見】
2019.06.12
PHP初心者向けに、var_dumpについてご説明させていただいます。
PHPには情報を出力する関数がいくつかあり、具体例としては下記のようなものがあります。
- print_r
- var_export
- echo
上記3つの情報を出力するための関数とvar_dumpは何が違うのか、その違いについてもご説明させていただきます。
初心者でも絶対にわかるので、是非参考にしてみてください。
var_dumpとは
var_dumpは、変数や処理命令などを画面に出力する関数です。
「画面に出力する関数」であれば、下記の関数も似たような結果を得ることができます。
- print_r
- var_export
- echo
しかし、上記3つの関数とvar_dumpが決定的に違う点が、出力する情報量です。
var_dumpでは、「データ型・バイト数」も出力できるため、エラーを発見するデバックにはとても向いています。
var_dumpの書き方
var_dumpの書き方は下記の通りです。
var_dump(出力する情報)
()内に、出力する情報を記入すれば出力されます。
var_dumpを実際のコードで書いてみた
実際にarrayという配列を用いてコードで書いてみます。
$data = array(
"A" => "Apple",
"B" => "Banana",
"C" => "Cherry"
);
var_dump($data);
// 出力結果
array(3) { ["A"]=> string(5) "Apple" ["B"]=> string(6) "Banana" ["C"]=> string(6) "Cherry" }
array を用いて$dataの配列を作り、var_dumpで出力するというシンプルなコードです。
出力結果に、$dataの配列の値だけでなく、データ型(string(5))まで出力されているのがわかると思います。
プログラミングでは変数を宣言する際に、値に応じて「データ型」を指定する必要があります。
- 整数型・・・数字(例:1、123、2000)
- 倫理型・・・true、false
しかし、PHPでは値に応じて自動でデータ型の処理をしてくれるので、記述する必要はありません。
では、var_dump以外の出力するための関数はどのように表示されるのでしょうか。
実際のコードで見比べてみましょう。
var_dump・var_export・print_r・echoとの違い
var_dump以外の出力するための関数は下記の3つです。
- print_r
- var_export
- echo
上記3つのいずれも、PHPで頻繁に使われる情報を出力する関数です。
では、var_dump・print_r・var_export・echoの違いはどこにあるのか、言葉で説明すると難しいので、実際の出力結果を見比べてみましょう。
-- true(論理値型)を出力した場合 --
# var_dump の出力結果
bool(true)
# print_r の出力結果
true
# var_export の出力結果
1
# echo の出力結果
1
-- 123(数値型)を出力した場合 --
# var_dump の出力結果
int(123)
# print_r の出力結果
123
# var_export の出力結果
123
# echo の出力結果
123
-- ok(文字列型)を出力した場合 --
# var_dump の出力結果
string(2) "ok"
# print_r の出力結果
'ok'
# var_export の出力結果
ok
# echo の出力結果
ok
-- null(null型)を出力した場合 --
# var_dump の出力結果
NULL
# print_r の出力結果
NULL
# var_export の出力結果
# echo の出力結果
-- array(1,2,3)(配列型)を出力した場合 --
# var_dump の出力結果
array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3) }
# print_r の出力結果
array ( 0 => 1, 1 => 2, 2 => 3, )
# var_export の出力結果
Array ( [0] => 1 [1] => 2 [2] => 3 )
# echo の出力結果
Array
var_dump・print_r・var_export・echoの違いをなんとなく理解できたと思います。
ぶっちゃけ、「var_dumpは全ての情報を出力してくれるんだな」程度の認識で大丈夫です。
そして、出力する情報量が多いからこそ、エラーを見つけやすいため、「デバック作業に向いている」と覚えておいてください。
var_dumpはデバック作業にオススメ!
var_dumpは情報を多く出力できるため、エラーを発見するのに最も有効的な関数です。
大型の開発に着手する際は必ず役立ちますので、「var_dumpはデバック作業に向いている」とだけ覚えておきましょう。