PHPで何故かエラーが発生……。
文法も間違ってないし、やり方も確かにあってるはずなのに……
このようなことでお困りの方に向けて、PHPで変数の中身を確認する方法をお伝えします。
- PHPでエラーが発生する主な原因
- PHPで変数や配列の中身を確認する方法
PHPでエラーが発生する主な原因
PHPでエラーが発生する原因は主に下記の通りです。
- 書いたプログラムに文法的な誤りがある
- 関数の引数に不適切な値を渡している
- 未定義の変数や関数を呼び出している
この中で、「文法的な誤り」が発生している場合はsyntax errorの表示が出るため比較的原因を特定しやすいです。
しかし、初心者の方が特にハマりやすいのが、文法的な誤りは無く、パッと見て理屈上もおかしな点が無さそうという状況で発生しているエラーです。
こうしたエラーによってお困りの場合、まずは使用している変数や配列を出力し、その中身の確認を行うことをおすすめします。
例えば、そのとき変数の中身がnullやundefinedとなっていたり、意図していない値になっていたら、それがエラーの原因ということになります。
そこからさらにプログラムを辿っていくことで、根本的な原因を特定、解決することが可能となります。
ちなみにこの作業のことを一般的にデバッグと呼んだりします。
PHPで変数の中身を確認する方法
PHPで変数や配列の中身を確認する方法はいくつかありますが、今回は下記3つの関数をご紹介します。
関数名 | 使い分け |
---|---|
echo | 単一の変数の中身を確認したいとき |
var_dump | 配列変数の中身を確認したいとき |
print_r | 見やすさを重視したいとき |
上記で汎用性が最も高いのがvar_dump関数です!
ただ、初心者の方にとっては出力内容が少々見づらい部分もあるため、PHPでHTML出力する際にお馴染みのechoや出力情報量が最小限のprint_rも併せてご紹介します。
echo
使い方
<?php
$sample = "これはサンプルです。";
echo $sample;
?>
出力結果
var_dump
使い方
<?php
$sample_arr = ["いぬ", "ねこ", "ねずみ"];
echo "<pre>";
var_dump($sample_arr);
echo "</pre>";
?>
出力結果
もちろんですが、var_dumpは単一の変数の出力にも使用可能です!
以下がその際の使用例です。
使い方 ~単一の変数ver~
<?php
$sample = "これはサンプルです。";
var_dump($sample);
?>
出力結果 ~単一の変数ver~
上記2つの例のように、var_dumpで出力される情報には型も含まれます。
もしも変数の型が意図していないものだとしたら、それがエラーの原因になっている可能性も考えられます。
print_r
3つ目にご紹介するprint_rは言ってしまえば、var_dumpから一部の出力情報を取り除いた状態で結果を出力する関数です。
正直、型まで分かった方が情報としては適切なため、最終的にはvar_dumpの使用をおすすめします。
しかし、PHPを学習し始めた初心者の方にとっては情報の込み合い具合も大切だと考えているため、出力情報が少なく表示が見やすいprint_rもご紹介しています。
使い方
<?php
$sample_arr = ["いぬ", "ねこ", "ねずみ"];
echo "<pre>";
print_r($sample_arr);
echo "</pre>";
?>
出力結果
このように出力情報がスッキリしているのがprint_rの特徴ですが、正確にデバッグするという意味ではやはりvar_dumpのように型まで分かる関数を使用することをオススメします。
PHPでパッと見て理屈に合わないエラーが発生したときは使用中の変数の中身を確認する
以上がPHPで変数の中身を確認する方法でした。
PHPを学習しているとエラーはつきものです。
一方、PHPを学習し始めたばかりという初心者の場合、経験者なら簡単に解消できるエラーであっても、解決までに時間がかかってしまうことが多々あります。
エラーが発生したときに大切なことは、
現状のプログラムを正確に把握すること
です。
まずはきちんと現状の把握をして、それから原因と思われる箇所へアプローチするようにしてみましょう。
最後までお読みいただきありがとうございました。
また別の記事でお会いできれば光栄です!
もしもPHPの独学に限界を感じているのであれば、一度プログラミングスクールの利用を検討してみるのも良いかもしれません。
無料でPHPが学べるプログミングスクール