PHPのvar_dumpという関数について、現役プログラマーが解説【初心者必見】

PHP初心者向けに、var_dumpについてご説明させていただいます。

PHPには情報を出力する関数がいくつかあり、具体例としては下記のようなものがあります。

  • print_r
  • var_export
  • echo

上記3つの情報を出力するための関数とvar_dumpは何が違うのか、その違いについてもご説明させていただきます。

初心者でも絶対にわかるので、是非参考にしてみてください。

var_dumpとは

var_dumpとは

var_dumpは、変数や処理命令などを画面に出力する関数です。

「画面に出力する関数」であれば、下記の関数も似たような結果を得ることができます。

  • print_r
  • var_export
  • echo

しかし、上記3つの関数とvar_dumpが決定的に違う点が、出力する情報量です。

var_dumpでは、「データ型・バイト数」も出力できるため、エラーを発見するデバックにはとても向いています。

var_dumpの書き方

code 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・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はデバック作業に向いている」とだけ覚えておきましょう。

Related

優秀なエンジニア募集

現在、ウェブアプリケーション開発・システム開発の案件を多数保有しており、受託案件希望の優秀なエンジニアを随時募集しております。

そのため、受託希望のエンジニアの方は下記LINE@よりご登録頂き、チャットで簡単な自己紹介をお願いいたします。

使用言語等は指定はありませんので、お気軽にご登録ください。

中澤寛の顔写真

中澤 寛

ラクロスで世代別日本代表になり、旅がしたいというただ一心で、就職せずにとりあえず路上で靴磨きの商売を始める。

その後、独学でプログラミングを学び、ウェブアプリケーション・システム開発を受託で請負、200以上の開発に携わる。

【使用言語】 HTLM・CSS / JavaScript / PHP / Python 。