LoginSignup
0
0

More than 3 years have passed since last update.

【PHP】PHPのデバッグで滅茶苦茶よく使う関数、”var_dump()”を紹介する記事

Posted at

皆さんは、PHP開発をするうえで「あの関数、中身どうなってるんだ?」と疑問を呈した事は無いでしょうか?
いちいち中身を確認する為に、実行して結果が思ったものと違って、かといって原因はわからない…
そんな経験もあるものかと思います。

そんな状態を解決してくれるのが、この[var_dump]です。これは、いわゆるデバッグに使う関数で、使うとその便利さに驚くはずです。
ここでは便利なvar_dump関数について、使い方&仕様を解説します!

var_dump()の動きを解説

まず下記のテストコードを打ち込みます。

var_dump_testCord.php
<?php
$a = 1;
$b = "test";
$c = "";
$d = 1.234567890;
$e = ["apple" => 3,"banana" => "sweet","orange" => 7];

var_dump($a);
var_dump($b);
var_dump($c);
var_dump($d);
var_dump($e);

すると出力は以下の通りになります。

//$a
int(1)

//$b
string(4) "test"

//$c
string(0) ""

//$d
float(1.23456789)

//$e
array(3) {
  ["apple"]=>
  int(3)
  ["banana"]=>
  string(5) "sweet"
  ["orange"]=>
  int(7)
}

どうでしょう?
var_dump関数を用いる事で、変数の中身がただ出力されるのみならず、なんと内部でのプリミティブ型(0か1の型を示すbool値とか、文字列のstring値のような「変数の種類」を示すもの)付きで、さらに変数の中身が表示されるようになります。

int型/float型の場合は、()の中に変数の中身が入ります。
string型の場合、()の中身は"半角/全角スペースを含めた文字列の文字数"が表示され、更にその後に変数の中身が表示されます。
array型の場合、()の中身は何とarrayの中身の数と、中のプリミティブ型とその具体的な仕様まで詳しく出てきます。

おまけ:デバッグ向け関数には、print_r()という関数もある。

var_dump関数はデバッグで有用という事をお伝えしましたが、実は似たような用途の関数に。"print_r"関数というものもあります。
こちらは、いうなればvar_dump関数の簡易版ともいえる仕様です。

プリミティブ型は表示させず、そのまま関数の中身を表示してくれるという仕様です。

試しに、上記のテストコードで書いたvar_dump()の部分を、全てprint_r()に書き換えてみましょう。
出力は以下の通りです。

print_r
123test1.23456789Array
(
    [apple] => 3
    [banana] => sweet
    [orange] => 7
)

簡易的ですね。情報量が少なくなっており、更にソースコード自体に工夫をせねば改行もありません。
var_dumpするまでも無いと思えるデバッグをするのなら、使ってみてもいいかもしれません。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0