PHPプログラミングをする上でエラーが起きた場合には、デバッグして問題箇所を特定する必要があります。そういったデバッグ作業時に重宝するのが、var_dump関数です。
var_dump関数の使い方を知っているかどうかで、デバッグ作業の効率は格段に変わります。
PHPプログラミングを行うのであれば、ぜひこの記事を読んでvar_dump関数を使えるようになりましょう。
目次
PHPのvar_dump関数とは
PHPプログラミングで使われるvar_dump関数は、変数の情報を表示する関数です。
var_dump関数で値を表示できる変数に指定はなく、数値や文字列、配列といった様々な型の変数の値を確認することができます。また、変数に格納されている値の他にも、変数の型や文字列のバイト数などといった詳細情報も表示されます。
var_dump関数は、デバッグをするときに頻繁に使用される関数です。特に配列変数の中身を確認する際に重宝され、配列内のキー名などを指定しなくても全てのキーと値を確認できるので、とても便利です。PHPのソースコードをデバッグするときには、必須の関数だといえるでしょう。
PHPのvar_dump関数を使う方法
それでは実際に、PHPのvar_dump関数を使って変数情報を表示してみます。
- 整数型の変数
- 文字列型の変数
- 配列型の変数
上記3つの場合に分けて、var_dump関数を使って変数情報をどのように表示されるのかを確認してみましょう。
整数型の変数の場合
まずは、整数型の変数の場合、var_dump関数を使うと変数値がどのように表示されるのかを確認してみましょう。
1 2 3 4 5 6 |
<?php $data = 10; var_dump($data); ?> |
上記サンプルコードでは、変数dataに「10」を格納し、damp_var関数で変数dataを確認しました。結果は「int(10)」と表示されました。
「int」は変数が整数型であることを示し、「10」は変数に格納されている値を示しています。
文字列型の変数の場合
次に、文字列型の変数の場合、var_dump関数を使うと変数値がどのように表示されるのかを確認してみましょう。
1 2 3 4 5 6 |
<?php $data = 'sample'; var_dump($data); ?> |
上記サンプルコードでは、変数dataに「sample」を格納し、damp_var関数で変数dataを確認しました。結果は「string(6) “sample”」と表示されました。
「string」は変数が文字列型であることを示し、「(6)」はバイト数を示しています。今回であれば、「sample」の半角の英字が6つ格納されているため、「6」が表示されました。そして、「”sample”」は変数に格納されている値を示しています。
なお、変数に文字列型の数値を格納した場合の、damp_var関数の表示結果も確認してみましょう。
1 2 3 4 5 6 |
<?php $data = '10'; var_dump($data); ?> |
damp_var関数の表示結果は、「string(2) “10”」となりました。変数には、文字列型で数値を格納したので、意図した通りの結果となりました。
デバッグ時であれば、「echo」では確認できない内容ですね。
配列型の変数の場合
最後に、配列型の変数の場合、var_dump関数を使うと変数値がどのように表示されるのかを確認してみましょう。
1 2 3 4 5 6 |
<?php $data = array('a','b','c','d'); var_dump($data); ?> |
[0]=>
string(1) “a”
[1]=>
string(1) “b”
[2]=>
string(1) “c”
[3]=>
string(1) “d”
}
上記サンプルコードでは、変数dataに「a,b,c,d」を配列で格納し、damp_var関数で変数dataを確認しました。
「array(4)」は4つの要素を持つ配列であることを示し、「[0~3]」は各キーとそのキーに格納された値を示しています。
各キーに格納された値に関する表示は、文字列変数をdamp_var関数で表示させたときと同じです。
それでは、配列の値に整数型と文字列型を混同して格納した場合の、damp_var関数の表示結果も確認してみましょう。
1 2 3 4 5 6 |
<?php $data = array('a',2,'c',4); var_dump($data); ?> |
[0]=>
string(1) “a”
[1]=>
int(2)
[2]=>
string(1) “c”
[3]=>
int(4)
}
整数型と文字列型を格納した配列の情報を、damp_var関数で表示させた結果、各値の型を正しく表示しています。
また、他の構造をもつ配列の場合にも、damp_var関数を使って情報を表示させてみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
<?php // 配列 echo '配列' . '<br>'; $data1 = [ 'Aさん'=>'女性', 'Bさん'=>'男性', 'Cさん'=>'女性' ]; var_dump($data1); echo '<br>'; // 多次元配列 echo '多次元配列' . '<br>'; $data2 = [ ['Aさん',20,'女性'], ['Bさん',28,'男性'], ['Cさん',31,'女性'] ]; var_dump($data2); echo '<br>'; // 連想配列 echo '連想配列' . '<br>'; $data3 = [ '001'=>['Aさん',20,'女性'], '002'=>['Bさん',28,'男性'], '003'=>['Cさん',31,'女性'] ]; var_dump($data3); ?> |
array(3) {
[“Aさん”]=>
string(6) “女性”
[“Bさん”]=>
string(6) “男性”
[“Cさん”]=>
string(6) “女性”
}
多次元配列
array(3) {
[0]=>
array(3) {
[0]=>
string(7) “Aさん”
[1]=>
int(20)
[2]=>
string(6) “女性”
}
[1]=>
array(3) {
[0]=>
string(7) “Bさん”
[1]=>
int(28)
[2]=>
string(6) “男性”
}
[2]=>
array(3) {
[0]=>
string(7) “Cさん”
[1]=>
int(31)
[2]=>
string(6) “女性”
}
}
連想配列
array(3) {
[“001”]=>
array(3) {
[0]=>
string(7) “Aさん”
[1]=>
int(20)
[2]=>
string(6) “女性”
}
[“002”]=>
array(3) {
[0]=>
string(7) “Bさん”
[1]=>
int(28)
[2]=>
string(6) “男性”
}
[“003”]=>
array(3) {
[0]=>
string(7) “Cさん”
[1]=>
int(31)
[2]=>
string(6) “女性”
}
}
上記サンプルコードのとおり、damp_var関数を使えば、変数名を指定するだけで様々な配列の情報を表示することができます。
damp_var関数を使えば、デバッグ時の確認作業で、配列構造を調べる作業を大幅に省略することができますね。
PHPのvar_dump関数とprint_r関数の違い
PHPには、var_dump関数と同じような機能をもつprint_r関数があります。そこで、同じ変数に対し、各関数を使った表示結果の違いを確認してみましょう。
1 2 3 4 5 6 7 |
<?php $data = array('a','b','c','d'); var_dump($data); print_r($data); ?> |
[0]=>
string(1) “a”
[1]=>
string(1) “b”
[2]=>
string(1) “c”
[3]=>
string(1) “d”
}
Array
(
[0] => a
[1] => b
[2] => c
[3] => d
)
var_dump関数に比べて、print_r関数で得られる情報量は少ないことがわかります。ただし、var_dump関数だと情報量が多すぎて見づらい人は、print_r関数を使った方がデバッグ作業もスムーズに進むかもしれません。
まとめ
PHPのvar_dump関数は、変数の詳細な情報を表示してくれる関数です。var_dump関数を使えば、PHPソースコードのデバッグ作業を効率よく行うことができます。
var_dump関数で取得できる情報は、変数の値だけでなく、変数の型やバイト数も取得できます。情報量が多すぎて使いづらい場合には、print_r関数を使うのも良いでしょう。